d3.js 中的时间格式不工作

timeformat in d3.js not working

我正在使用以下代码获取 d3.js

中的小时和分钟
e.time=e.time.substring(12,19);
var timeformat=d3.time.format("%H:%M").parse;
e.time2=timeformat(e.time);
console.log(e.time2);

但我的输出为空。我的 e.time 包含以下值模式

2015-03-29T20:32:24Z
e.time.substring(12,19) returns 20:32:24.

我做错了什么?

你需要在这里做两件事:

  1. 将字符串 20:32:24 解析为日期。对于该用途:

    var timeformat=d3.time.format("%H:%M:%S").parse;
    
  2. 格式化日期,返回有效格式的字符串)在本例中 hh:mm:

    var hoursandminsformat=d3.time.format("%H:%M");
    

Fiddle 这里:http://jsfiddle.net/henbox/mwvvuazz/

比使用 e.time.substring(12,19); 更好的方法是使用以下方法解析完整的日期对象:

var ISO8601format=d3.time.format("%Y-%m-%dT%H:%M:%SZ")

然后

var fomatted_time = hoursandminsformat(ISO8601format.parse("2015-03-29T20:32:24Z"));