我在数据库中有一些时间数据作为unix时间戳,即1446151150000.我想将它解析为hr:min:sec格式为d3。所以我这样做:
// d.localtime is unix timestamp
data.forEach(function(d) {
d.localtime = parseDate(new Date(Number(d.localtime)).toString().substring(16, 24));
});
但是我发现时间戳1446151150000
和1446151150500
具有完全相同的转换后的字符串14:39:10
。即,new Date(Number(1446151150000)
和new Date(Number(1446151150500)
与Thu Oct 29 2015 14:39:10 GMT-0600 (MDT)
完全相同,但实际时间差异为0.5秒。
问题,我怎样才能获得更精确的秒数? ,如何将转换后的1446151150000
和1446151150500
字符串分别设为14:39:10.00
和14:39:10.50
而不是14:39:10
?
谢谢!
答案 0 :(得分:0)
精度仍然存在,您只是看到日期的默认语言环境字符串表示。使用d3,您可以使用自定义时间format调整字符串格式。您正在寻找的具体是:
> dtFormat = d3.time.format("%a %b %e %Y %H:%M:%S.%L GMT%Z");
> dtFormat(new Date(1446151150500));
"Thu Oct 29 2015 16:39:10.500 GMT-0400"