这似乎是一个微不足道的问题,但我得到一个奇怪的错误:
“未捕获的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例子,我看不出我做错了什么。我想回到这一年。
答案 0 :(得分:3)
format
函数需要一个字符串,并传入一个没有Date
函数的slice
对象。
我相信这是你想要实现的目标:
var format = d3.time.format("%Y-%m-%d");
console.log(format(new Date(1075611600000))); // returns a string
[jsfiddle]
答案 1 :(得分:0)
您将Date
传递给parse
方法,where you should pass it a string
.
如果您想从string
,don'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