在JS编程中,时间戳与日期间的转换应该是很常用了,举个简单的例子:
var timestamp = 1546927200000; // 2019年1月8号
var newDate = new Date();
newDate.setTime(timestamp);
var date = newDate.getFullYear() + '-' + newDate.getMonth() + '-' + newDate.getDay();
console.log(date);
最终结果却是:
我们打断点看一下发生了什么?
debug我们发现,日期并没有错。是2019年1月8号星期二,那么为什么返回的却是2019-0-2
。原因是由于,我们在使用Date
的对象的时候没有注意以下两点:
-
getMonth()
的下标是0,不是1。也就是说,返回了0,是正确的,0代表1月。 -
getDay()
返回的是周几,getDate()
返回的才是几号。
所以上述方法改写为:
var timestamp = 1546927200000;
var newDate = new Date();
newDate.setTime(timestamp);
var date = newDate.getFullYear() + '-' + (newDate.getMonth() + 1) + '-' + newDate.getDate();
console.log(date);
即得到我们想要的结果
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。