d3.js时间解析毫秒不起作用?

rep*_*cus 3 javascript datetime d3.js

是否有一种解决方法可以让D3.js解析包含毫秒的日期时间?我不能让这个工作:

var parseDate = d3.time.format("%Y-%m-%dT%H:%M:%S").parse
parseDate("2011-01-01T12:14:35")
//that works

parseDate("2011-01-01T12:14:35.3456")
//returns null
Run Code Online (Sandbox Code Playgroud)

Gop*_*han 5

如果您的dateTime字符串已经采用该格式,则不需要d3将其解析为实际的日期对象.

例如:

new Date("2011-01-01T12:14:35")
# Sat Jan 01 2011 04:14:35 GMT-0800 (PST)
Run Code Online (Sandbox Code Playgroud)

得到一个正确的日期对象.


Nic*_* TJ 5

包含格式以解析使用 %L的毫秒数。

对于您的情况:

var parseDate = d3.time.format("%Y-%m-%dT%H:%M:%S").parse
parseDate("2011-01-01T12:14:35")    //that works

var parseDate = d3.time.format("%Y-%m-%dT%H:%M:%S.%L").parse
parseDate("2011-01-01T12:14:35.345")    // works
Run Code Online (Sandbox Code Playgroud)

请注意,您提供了 4 位数作为毫秒,如果您正在处理毫秒,我认为这不是真的。如果你真的有 4 位或 6 位(微秒)并且你只对毫秒感兴趣,你可以过滤掉最后几位数字。例如:

var parseDate = d3.time.format("%Y-%m-%dT%H:%M:%S.%L000").parse
parseDate("2011-01-01T12:14:35.345000")    //that works
Run Code Online (Sandbox Code Playgroud)