是否有让 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
是否有让 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
包含格式以解析使用 %L source的毫秒数。
对于您的情况:
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
请注意,您以毫秒为单位提供了 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
如果您的 dateTime 字符串已经采用该格式,则不需要 d3 将其解析为实际的日期对象。
例如:
new Date("2011-01-01T12:14:35")
# Sat Jan 01 2011 04:14:35 GMT-0800 (PST)
产生正确的日期对象。
尝试查看d3.time.format.iso
wiki 页面上显示的格式化函数:d3.time.format.iso。