2013-05-14 3 views
1

J'ai les données au format des secondes. Je voudrais convertir les données de secondes en heures et minutes et afficher ces données le long d'un axe. Par exemple, j'ai essayé de le faire comme ceci:Conversion des secondes en minutes et des axes de formatage

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

Je vois que D3 a un temps de formatter, mais je ne peux pas sembler l'obtenir pour afficher le format approprié. Ce que je cherche, c'est un moyen de convertir les données en secondes en heures et en minutes. Comment puis-je faire ceci?

+0

Les fonctions horaires sont la solution. Qu'avez-vous essayé et qu'est-ce qui n'a pas fonctionné? –

+0

Merci pour l'aide. J'ai essayé d'utiliser des fonctions de temps comme ceci: 'format = d3.time.format ("% M ");' Calling 'format (200)' ne formate pas l'heure correctement cependant. – user1728853

+0

Ah, je pense que j'ai mal compris ce que vous essayez de faire. Vos heures sont relatives à un début et non absolues (c'est-à-dire un horodatage Unix)? Alors ce que vous faites est la meilleure façon de gérer cela - les fonctions de temps sont destinées à travailler avec des temps absolus. –

Répondre

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); 

}); 

Ceci convertira les millisecondes en minutes et secondes.

Questions connexes