Si j'ai deux dates, comment puis-je utiliser JavaScript pour obtenir la différence entre les deux dates en quelques minutes?
javascript
datetime
John
la source
la source
Réponses:
Vous pouvez vérifier ce code:
ou
var diffMins = Math.floor((...
pour supprimer les secondes si vous ne voulez pas arrondir les minutes.la source
Math.round(((diffMs % 86400000) % 3600000) / 60000);
ne fonctionne pas lorsque la différence est supérieure à 60 minutesLa soustraction de 2 objets Date vous donne la différence en millisecondes, par exemple:
Math.abs
est utilisé pour pouvoir utiliser la différence absolue (new Date('2011/10/09 00:00') - new Date('2011/10/09 12:00')
donne donc le même résultat).Diviser le résultat par 1000 vous donne le nombre de secondes. En divisant cela par 60, vous obtenez le nombre de minutes. Pour arrondir à des minutes entières, utilisez
Math.floor
ouMath.ceil
:Dans cet exemple, le résultat sera 720
la source
(Math.floor(seconds/60))+':'+((seconds/60)%60)
si vous avez également besoin des secondes restantesnew Date(string)
avec un format autre qu'une chaîne de format ISO-8601. Voir Pourquoi Date.parse donne-t-il des résultats incorrects? , ou utilisez simplement des nombres (par exemple,new Date(2011, 9, 9, 12, 0, 0)
rappelez-vous simplement que les mois sont basés sur 0).la source
new Date(string)
avec un format autre qu'une chaîne de format ISO-8601. Voir Pourquoi Date.parse donne-t-il des résultats incorrects? , ou utilisez simplement des nombres (par exemple,new Date(2011, 9, 9, 12, 0, 0)
rappelez-vous simplement que les mois sont basés sur 0).Une fonction simple pour effectuer ce calcul:
la source
Cela devrait montrer la différence entre les deux dates en quelques minutes. Essayez-le dans votre navigateur:
la source
(currDate.getTime() - oldDate.getTime()) / 60000
Pour ceux qui aiment travailler avec de petits nombres
la source
Ce problème se résout facilement avec moment.js, comme cet exemple:
var difference = mostDate.diff(minorDate, "minutes");
Le deuxième paramètre peut être changé pour un autre paramètre, voir la documentation moment.js.
par exemple: "jours", "heures", "minutes", etc.
http://momentjs.com/docs/
Le CDN pour moment.js est disponible ici:
https://cdnjs.com/libraries/moment.js
Merci.
ÉDITER:
mostDate et minorDate doivent être de type moment.
la source
Voici un peu de plaisir que j'ai eu à résoudre quelque chose de similaire dans node.
Vous pouvez le voir en action sur https://repl.it/@GioCirque/TimeSpan-Formatting
la source
Le code suivant a fonctionné pour moi,
la source
Vous pouvez faire comme suit:
difference of dates
(La différence sera en millisecondes)milliseconds
enminutes
iems/1000/60
Le code:
la source