使用D3进行Epoch时间转换

时间:2016-01-13 20:24:27

标签: javascript d3.js

这似乎是一个微不足道的问题,但我得到一个奇怪的错误:

  

“未捕获的TypeError:t.slice不是函数”

尝试将unix时间戳传递给我的代码时。

var myDate = new Date(1075611600000);
  var format = d3.time.format("%Y").parse; //Trying to return the year.
  console.log(format(myDate)); //error noted above
  console.log(myDate); //Sun Feb 01 2004 00:00:00 GMT-0500 (EST)

任何人都会看到我犯的明显错误?提前致谢。我看过this例子,我看不出我做错了什么。我想回到这一年。

2 个答案:

答案 0 :(得分:3)

format函数需要一个字符串,并传入一个没有Date函数的slice对象。

我相信这是你想要实现的目标:

var format = d3.time.format("%Y-%m-%d");
console.log(format(new Date(1075611600000))); // returns a string

[jsfiddle]

https://github.com/mbostock/d3/wiki/Time-Formatting

答案 1 :(得分:0)

您将Date传递给parse方法,where you should pass it a string.

如果您想从stringdon't use .parse()中获得Date

PS:你正在使用缩小的d3,所以Uncaught TypeError: t.slice is not a function代表:

Uncaught TypeError: string.slice is not a function

d3_time_parseFullYear @ d3.js:2760
d3_time_parse @ d3.js:2563
format.parse @ d3.js:2538