2016-04-21 55 views

回答

2

试试这个

d3.time.format('%H h : %M min : %S sec')(new Date())

它会格式化这样

05小时日期:34分:26秒

或者,如果你不” t像0填充小时做

d3.time.format('%-H h : %M min : %S sec')(new Date())

它将格式化这样

5小时的时间:37(分钟):54秒

EDIT

在这样的情况下,你将需要把如果阻止做检查并返回所需的格式,如下所示:

.tickFormat(function(d) { 
     var date = new Date(d); 
     if (date.getHours() == 0){ 
     return d3.time.format('%M min : %S sec')(d) 
     } else { 
     return d3.time.format('%-H h : %M min : %S sec')(d) 
     } 

} 
+1

这有一个不利之处:当我有一段时间低于一个小时,如21258毫秒它转换为“1小时:00分钟:21秒”。只有当它们有价值时,才有办法显示“h”和“min”? – Raggamuffin

+0

检查我的编辑部分这应该钉它:) – Cyril

+0

Mh我很抱歉,当我使用这个我得到的错误:'TypeError:d.getHours是不是一个函数 在d3_time_formats.H(d3js_d3.js?散列= 54da9a2 ...:2643)'。任何线索? – Raggamuffin