Maison > interface Web > js tutoriel > 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
Libérer: 2024-11-19 05:41:02
original
664 Les gens l'ont consulté

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"
Copier après la connexion

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
Copier après la connexion

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")
Copier après la connexion

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"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal