时间戳
今天遇到了一个特别简单的问题,但是竟然搞了半天都没意识到,太粗心了,下边和大家分享一下我的遗漏点,看看你是否也会这样哦。。。
今天后台程序员返回给我这个时间戳:1601020242,需要把它以日期时间格式展示出来,我很快找到了这么个方法:
1 <script> 2 function formatDate(now) { 3 var year=now.getFullYear(); //取得4位数的年份 4 var month=now.getMonth()+1; //取得日期中的月份,其中0表示1月,11表示12月
// now.getMonth()+1 < 10 ? '0'+(now.getMonth()+1) : now.getMonth()+1 5 var date=now.getDate(); //返回日期月份中的天数(1到31) 6 var hour=now.getHours(); //返回日期中的小时数(0到23) 7 var minute=now.getMinutes(); //返回日期中的分钟数(0到59) 8 var second=now.getSeconds(); //返回日期中的秒数(0到59) 9 console.log(year); 10 return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 11 } 12 var g=1601020242; //定义一个时间戳变量 13 var d=new Date(g); //创建一个指定的日期对象 14 console.log(d); 15 console.log(formatDate(d)); 16 </script>
这个方法确实不错呦。。。真的不骗你哟,确实转化成了日期格式,不信,看打印的数据:
但是,有个细节不注意就会导致结果出错,上边的格式是对的,但是呢,数据却是错的呦,1601020242 这个转化出来应该是2020年才是对的。
那哪里出错了呢,于是我就找呀找呀,百度了好几个博客,才发现和我一样的战友,来,我给你截图看看,究竟问题出现在哪。。。
一定得注意,这里需要乘以1000。
当然啦,我说的是后台以秒为单位给你返回的时候(一般应该是十位数),这要乘以1000;如果返回的本身是以毫秒为单位的话(一般应该是十三位数),那就不用多此一举了。
好了,那改过之后,自然结果不会出错的啦,嘻嘻。。。