我正在尝试将对象中的一些信息插入到数据库中。对象是Stripe对象(它们处理付款)。这并不重要;重要的是他们如何向服务器提供付款的“日期”。他们在几毫秒内提供它:
{
"created": 1489458464
}
那应该是自1970年1月1日,00:00:00 UTC以来的毫秒时间......但它缺少最后3位数字。
因此,当我想将其转换为可读时间时,我只需添加3个零,如下所示:
var date = 1489458464000;
var date2 = new Date(date);
console.log(date2.toString());
//Output: Mon Mar 13 2017 22:27:44 GMT-0400 (Eastern Daylight Time)
这似乎是解决这个问题的可接受方案;最后3位数字似乎没有改变日期/时间。
我只想确认这是否合适,或者是否有人认为我应该做其他事情。感谢。
答案 0 :(得分:2)
根据他们的documentation,它实际上不应该是以毫秒为单位,因为它们使用UNIX timestamp,表示为自1970年1月1日以来的秒数。我说最优雅的解决方案是注意到这一点,然后在构造函数中乘以1000:
var date2 = new Date(date * 1000) //because Unix timestamps are in seconds

答案 1 :(得分:0)
不,这对我来说并不合适。
事实上,请看这里:
使用javascript将UTC纪元转换为本地日期 - Stack Overflow: Convert UTC Epoch to local date with javascript