2010-10-27 5 views
2

Comment convertir le temps en secondes au format heure normale dans l'exemple rails.For 1971 secondes doivent être affichées sous forme 0:33:25Comment convertir le temps en secondes au format d'heure standard dans les rails?

+0

Je pense que vous avez tort dans votre partie de calcul. Voir 1971/60 vous donne une valeur 32,85. Cela ne signifie pas 32 minutes et 85 secondes, mais cela signifie 32 minutes plus 0,85 minutes, ce qui équivaut à 51 secondes. Cela signifie que 1971 secondes vous donnera 32,51 secondes. Par conséquent, je pense que la réponse de @ Ariejan est correcte même si je ne l'ai pas testé et je ne le garantis pas comme solution parfaite. – Rohit

+0

@ user475748 Je pense que vous devez accepter la réponse de @Ariejan. Je l'ai testé et il fonctionne parfaitement selon vos besoins. – Rohit

Répondre

2

Il n'y a pas d'aide que pour vous dans des rails. Mais il est assez facile d'écrire votre propre:

def to_dot_time(s) 
    h = s/3600 
    s -= h * 3600 

    m = s/60 
    s -= m * 60 

    [h, m, s].join(":") 
end 

Et un exemple:

>> to_dot_time(1971) 
=> "0:32:51" 
+1

Aussi pas que le 0:33:25 dans votre question est faux pour 1971 secondes. Ou avez-vous utilisé d'autres moyens de calculer cette valeur? – Ariejan

-1

Alors que la réponse de Ariejan est parfaitement OK, juste pour la référence, je point à un autre, étant donné le Ruby-doc Time class docs (faites défiler vers le bas , recherchez des notes supplémentaires). En bref, il existe une méthode pour convertir numérique à temps par exemple:

Time.at(number) 

qui peut être présenté à l'aide strftime "%T". Attention: autant que je vois, il ne montrera pas les instances de temps avec plus de 23 heures.

+0

Ceci donne un temps absolu alors que le questionneur pose des questions sur le temps relatif. –

Questions connexes