D3格式化时间增加19小时

时间:2015-07-29 15:27:01

标签: javascript date d3.js format

我试图将数据库返回的值转换为日期对象,然后将其传递给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));});

有人知道这里发生了什么吗?

1 个答案:

答案 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))