我试图将数据库返回的值转换为日期对象,然后将其传递给D3格式方法。但是当我随时尝试格式化时,d3的格式化功能在我的时间增加了19个小时!例如,将0传递给日期对象,如下所示:
series: [{
name: 'John',
data: [5, 3, 4, 7, 2],
color: '#FF0000'
},
返回// create the third column for each segment.
tr.append("td").attr("class",'legendFreq')
.text(function(d){ return d3.time.format("%H:%M:%S")(new Date(0));});
有人知道这里发生了什么吗?
答案 0 :(得分:2)
d3不添加小时数,差异基于时区。
默认情况下, new Date(0)
返回时区相关的日期对象。
(对我来说是Thu Jan 01 1970 01:00:00 GMT+0100 (W. Europe Standard Time)
)
如果我使用你的d3.format函数,我(正确)只得到小时部分:"01:00:00"
。
要使您的时间戳与时区无关,您应该使用d3.time.format.utc功能。使用它,我得到"00:00:00"
:
d3.time.format.utc("%H:%M:%S")(new Date(0))