2013-05-14 121 views
1

我有数据格式为秒。我想将秒数据转换为小时和分钟,并沿轴显示这些数据。举例来说,我一直在努力做到这一点是这样的:将秒转换为分钟并格式化轴

var xAxis = d3.svg.axis() 
     .scale(x) 
     .orient("bottom") 
     .tickFormat(function(d) {return d/60}); 

我看到D3具有时间格式,但我似乎无法得到它,以显示正确的格式。我正在寻找的是D3中一种将数据转换成数小时和数分钟的方式。我怎样才能做到这一点?

+0

时间函数是要走的路。你有什么尝试,什么没有工作? – 2013-05-14 17:09:15

+0

感谢您的帮助。我尝试过使用像这样的时间函数:'format = d3.time.format(“%M”);'调用'format(200)'不会正确地格式化时间。 – user1728853 2013-05-14 17:12:37

+0

啊,我想我误解了你想要做的事情。你的时间是相对于开始而不是绝对的(即Unix时间戳)?那么你在做什么是处理这个问题的最好方法 - 时间函数是为了与绝对时间一起工作。 – 2013-05-14 17:18:30

回答

0
var xAxis = d3.svg.axis() 
     .scale(x) 
     .orient("bottom") 
     .tickFormat(function(d) { 
     var minutes = Math.floor(d/60000); 
     var seconds = +((d % 60000)/1000).toFixed(0); 
     return (seconds == 60 ? (minutes+1) + ":00" : minutes + ":" + (seconds < 10 ? "0" : "") + seconds); 

}); 

这会将毫秒转换为分钟和秒。