Maison  >  Article  >  interface Web  >  Comment calculer avec précision la différence de temps entre deux dates-heures en JavaScript ?

Comment calculer avec précision la différence de temps entre deux dates-heures en JavaScript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-19 05:41:02588parcourir

How to Accurately Calculate the Time Difference Between Two Datetimes in JavaScript?

Comment obtenir le décalage horaire entre les dates et les heures

Déterminer le décalage horaire entre deux instances est une tâche fondamentale dans divers scénarios de programmation. Cet article explique comment calculer efficacement cette différence à l'aide d'exemples spécifiques.

Considérez l'exigence suivante :

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";

//expected result:
"00:39:30"

Au départ, vous pouvez essayer l'approche suivante :

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, dans cet exemple, la valeur inattendue « 10 » apparaît dans le résultat. En effet, moment.duration convertit la différence entre maintenant et ensuite en un objet contenant des valeurs internes telles que des millisecondes. Pour convertir cette durée en intervalle de temps, vous pouvez utiliser :

duration.get("hours") + ":" + duration.get("minutes") + ":" + duration.get("seconds")

Cela produirait le résultat souhaité : "00:39:30."

Remarque : Cette approche ne convient que pour des durées inférieures à 24 heures. Pour des durées plus longues, vous avez besoin d'une approche différente.

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

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

// outputs: "48:39:30"

Dans ce cas, nous calculons la différence de temps en millisecondes, la convertissons en un objet de durée d, puis la formatons en utilisant l'heure UTC. Cela nous donne le résultat correct, "48:39:30."

Vous pouvez également utiliser le plugin moment-duration-format pour simplifier le processus de formatage.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn