Maison >interface Web >js tutoriel >Comment calculer avec précision la différence de temps entre deux dates-heures à l'aide de moment.js ?
Déterminer la différence de temps entre deux dates et heures spécifiques est une exigence courante dans de nombreuses applications. Cet article fournit un guide complet pour obtenir un intervalle de temps précis à l'aide de moment.js, en abordant les problèmes potentiels et en proposant des approches alternatives.
Étant donné deux dates-heures représentées sous forme de chaînes, l'objectif est de calculez le décalage horaire et affichez-le au format HH:MM:SS. Par exemple :
var now = "04/09/2013 15:00:00"; var then = "04/09/2013 14:20:30"; //expected result: "00:39:30"
En utilisant la fonction diff de moment.js, vous pouvez essayer ce qui suit :
var now = moment("04/09/2013 15:00:00"); var then = moment("04/09/2013 14:20:30"); console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss")) //outputs 10:39:30
Cependant, cette approche ajoute de manière incorrecte 10 heures, même si les valeurs internes de la durée sont exactes.
Pour résoudre ce problème, il existe deux options :
Option 1 (pour les durées inférieures à 24 heures) :
moment.utc(moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")
Cette Cette approche convertit le décalage horaire en UTC, éliminant ainsi toute incohérence de l'heure d'été.
Option 2 (pour les durées de 24 heures ou plus) :
var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss")); var d = moment.duration(ms); var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");
Cette approche calcule la différence de temps en millisecondes, la convertit en un objet de durée et extrait les heures, les minutes et les secondes séparément.
Pour ceux qui recherchent une solution pratique pour formater les objets de durée, un plugin tiers appelé moment-duration-format peut être employé :
var s = d.format("hh:mm:ss");
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!