Convertir les tiques format de l'heure (hh:mm:ss)
Je suis la durée de la vidéo comme les tiques de serveur web. Je veux l'afficher dans un "hh:mm:ss". Comment puis-je faire cela en JavaScript?
Pouvez-vous montrer un exemple de ce que vous obtenez en entrée?
Normal diviser par 60 ne pas le faire?
Comme les médias "tiques" viennent dans beaucoup de différentes tailles, codesequoia.wordpress.com/2008/11/30/..., plus d'information est nécessaire pour donner une réponse définitive à cette question. Je serais très intéressé à ce que la tique tailles étaient réellement dans cette instance.
Normal diviser par 60 ne pas le faire?
Comme les médias "tiques" viennent dans beaucoup de différentes tailles, codesequoia.wordpress.com/2008/11/30/..., plus d'information est nécessaire pour donner une réponse définitive à cette question. Je serais très intéressé à ce que la tique tailles étaient réellement dans cette instance.
OriginalL'auteur Null Pointer | 2013-01-16
Vous devez vous connecter pour publier un commentaire.
En supposant que les tiques sont en quelques secondes (vous pouvez les convertir en secondes, d'abord si elles ne sont pas), vous pouvez obtenir le format souhaité par trouver le nombre de minutes et des heures dans le laps de temps, puis en prenant les secondes restantes. Le modulo opérateur est utile ici, comme c'est le fait qu'une heure est de 3600 secondes et une minute est de 60 secondes:
Voir cette réponse pour savoir comment ajouter un certain nombre de zéros en JS (la méthode ci-dessus est dérivée à partir de cette réponse).
Il existe de nombreux tique tailles pour la durée de la vidéo par exemple codesequoia.wordpress.com/2008/11/30/... Secondes (ce qui suppose) n'est généralement pas un d'entre eux comme c'est trop gros a mesure.
Q: en Supposant que c'était secondes, ne peut pas la dernière ligne juste être
var ss = ticks % 60;
?Il est sûr de supposer que les secondes l'unité appropriée dans ce cas, puisque l'OP accepté la réponse. Depuis qu'il a été affiché comme "hh:mm:ss", je suppose secondes ce qui était disponible (puisque c'est la précision du format d'affichage). Spéculer sur ce que l'OP a peut-être voulu n'est pas pertinent, mais, depuis cette fait le tour. Pour votre deuxième question:
ticks % 60
ne fonctionne pas, étant donné que le double compte les secondes déjà prises en compte par lehh
etmm
variables.Il n'est pas sûr de supposer quoi que ce soit et aucune des hypothèses ont été énoncées.
1 tick == 1
deuxième serait très inhabituel. Plus probable que l'OP utilisé cette réponse comme un guide et de la conversion d'eux-mêmes. Re le% 60
: depuis quand la opérateur de modulo "double comptage" quoi que ce soit? C'est tout simplement les secondes restantes après division par secondes par minute 🙂OriginalL'auteur nbrooks
C'est une vieille question, mais je n'étais pas heureux avec toutes les réponses.
Il y a 3 questions ici:
Partie 1 - Tiques
Tique tailles pour les médias viennent dans beaucoup de durées, de sorte que certaines hypothèses doivent être prises afin de répondre à la question.
Que la réponse souhaitée est en secondes, minutes et heures, la première étape est de convertir le "tick" de la valeur de secondes.
Par exemple, si les tiques ont été en millisecondes, puis la conversion serait
Partie 2 - extraction de l'heure, des minutes & deuxième
hour = seconds /secondsperhour
=>hour = seconds /3600
minute = seconds /secondsperminute modulus minutesperhour
=>minute = (seconds /60) % 60)
second = seconds modulus secondsperminute
=>second = seconds % 60
Partie 3 - mise en forme
par exemple
Remarque: en Raison de virgule flottante des erreurs, vous devez appliquer les Mathématiques.étage à la fois l'heure et les minutes. Vous pourriez mettre
Math.floor
dans lepad2
fonction si vous souhaitez raccourcir le code principal.La réponse finale devient:
Remarque: Pour l'amour de la démo, j'ai ajouté
% 24
(modulus hoursperday
) pour l'affichage des heures que les heures depuis 1971, est un "grand" nombre - ne sera donc pas en format à 2 décimales 🙂JSfiddle Démo: https://jsfiddle.net/TrueBlueAussie/x2s77gzu/
ou si vous voulez mettre
Math.floor
dans lepad2
https://jsfiddle.net/TrueBlueAussie/x2s77gzu/1/OriginalL'auteur Gone Coding
En supposant que les tiques sont en javascript (format de millisecondes écoulées depuis minuit le 1er janvier 1970):
http://www.w3schools.com/jsref/jsref_toisostring.asp
EDIT:
Au moins cette réponse déclare une hypothèse au sujet de la taille de l'tiques 🙂
toISOString
est partie de l'objet Date. JavaScript les tiques sont des nombres.OriginalL'auteur Mike Fuchs
Vous devrez utiliser le code suivant:
ss
calcul juste êtrevar ss = ts % 60;
?OriginalL'auteur Kees C. Bakker