Différence entre les dates en JavaScript
Comment trouver la différence entre deux dates?
- Double Possible de Comparer deux dates avec JavaScript
Vous devez vous connecter pour publier un commentaire.
Comment trouver la différence entre deux dates?
Vous devez vous connecter pour publier un commentaire.
À l'aide de la Date objet et de son millisecondes valeur, les différences peuvent être calculés:
Vous pouvez obtenir le nombre de secondes (comme un entier/nombre entier) en divisant le millisecondes par 1000 pour convertir en secondes puis en convertissant le résultat d'un entier (ce qui supprime la partie décimale représentant les millisecondes):
Vous pourriez obtenir tout
minutes
en divisantseconds
de 60 et de le convertir en un nombre entier, puishours
en divisantminutes
de 60 et de le convertir en un nombre entier, puis plus le temps de parts de la même façon. À partir de cela, une fonction permettant d'obtenir le maximum de la totalité du montant d'une unité de temps de la valeur d'une unité inférieure et le reste, l'unité inférieure peut être créé:Si vous vous demandez ce que les paramètres d'entrée fournies ci-dessus pour la deuxième Objet Date sont, de voir leurs noms ci-dessous:
Comme indiqué dans les commentaires de cette solution, vous n'avez pas nécessairement besoin de fournir l'ensemble de ces valeurs, sauf s'ils sont nécessaires pour la date que vous voulez représenter.
Date
constructeur avec tous les arguments, vous pouvez l'appeler seulement avec les années et les Mois, les autres arguments sont facultatifs.b
est en fait 2009-12-31, depuis un0
a été utilisé comme argument jour, il peut être quelque peu déroutant pour les nouveaux arrivants...J'ai trouvé et ça marche bien pour moi:
Le calcul de la Différence entre Deux Dates
Malheureusement, le calcul d'un intervalle de dates comme des jours, des semaines, ou des mois entre les deux dates n'est pas aussi facile parce que vous ne pouvez pas ajouter des objets ensemble. Pour utiliser un objet Date dans toute sorte de calcul, il faut d'abord récupérer la Date interne de la valeur en millisecondes, qui est stocké comme un grand nombre entier. La fonction de faire, c'est la Date.getTime(). Une fois que les deux Dates ont été convertis, en soustrayant au plus tard à partir de l'un renvoie la différence en millisecondes. L'intervalle désiré peut alors être déterminée en divisant ce nombre par le nombre correspondant de millisecondes. Par exemple, pour obtenir le nombre de jours pour un certain nombre de millisecondes, nous permettrait de diviser par 86,400,000, le nombre de millisecondes dans une journée (1000 x 60 secondes x 60 minutes x 24 heures):
L'arrondi est facultatif, selon que vous voulez une partie de la journée ou pas.
Référence
Si vous êtes à la recherche pour une différence exprimée comme une combinaison d'années, de mois et de jours, je vous suggère cette fonction:
JS:
Cette solution permettra de traiter les années bissextiles (29 février) et le mois différences de longueur de façon à nous, naturellement, de faire (je pense).
Ainsi, par exemple, l'intervalle entre le 28 février 2015 et le 28 Mars 2015, sera considéré comme un mois exactement, pas de 28 jours. Si ces deux jours sont en 2016, la différence sera encore un mois exactement, pas 29 jours.
Dates avec exactement le même mois et le jour, mais différents de l'année, aura toujours une différence de nombre exact d'années. Donc, la différence entre 2015-03-01 et 2016-03-01 sera exactement 1 an, 1 an et 1 jour (en raison de comptage de 365 jours à 1 an).
Cette réponse, basée sur une autre (lien à la fin), est à propos de la différence entre deux dates.
Vous pouvez voir comment cela fonctionne parce que c'est simple, il comprend également le fractionnement de la différence dans l'
les unités de temps (une fonction que j'ai fait) et de la conversion à l'UTC pour arrêter des problèmes de fuseau horaire.
JS:
Comment mon code ci-dessus fonctionne
Une date/heure différence, comme le nombre de millisecondes, peut être calculée à l'aide de la Date objet:
Ensuite de déterminer le nombre de secondes dans de la différence, de le diviser par 1000 pour convertir
quelques millisecondes à quelques secondes, puis changez le résultat d'un nombre entier) pour supprimer
les millisecondes (fraction qui décimal):
var seconds = parseInt(diff/1000)
.Aussi, j'ai pu obtenir plus d'unités de temps à utiliser le même processus, par exemple:
- (ensemble) minutes, en divisant secondes par 60, et de changer le résultat à un nombre entier,
- heures, en divisant minutes par 60, et de changer le résultat à un nombre entier.
J'ai créé une fonction pour faire ce processus de fractionnement de la différence dans l'
l'ensemble des unités de temps, nommé
split_to_whole_units
, avec cette démo:Cette réponse est fondée sur cette autre.