Donc j'ai deux dates YYYY-MM-DD
etZZZZ-NN-EE
Comment puis-je savoir combien de secondes il y a entre eux?
javascript
date
time
Steven
la source
la source
yyyy-MM-dd
est clair (année, mois, jour - notez qu'ils ne sont pas tous en majuscules), mais pas ZZZZ-NN-EE. Je l'interprète comme (fuseau horaire, ???, jour de la semaine). Est-ce une semaine en année? Si tel était le cas, cela aurait étéww
. Mais alors, nous avons également besoin de l'année pour calculer la différence. Pouvez-vous s'il vous plaît donner quelques-unes des valeurs d'échantillon réelles?Réponses:
Je prends YYYY et ZZZZ pour signifier des valeurs entières qui signifient l'année, MM et NN pour signifier des valeurs entières signifiant le mois de l'année et JJ et EE comme des valeurs entières signifiant le jour du mois.
var t1 = new Date(YYYY, MM, DD, 0, 0, 0, 0); var t2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0); var dif = t1.getTime() - t2.getTime(); var Seconds_from_T1_to_T2 = dif / 1000; var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2);
Une source pratique pour référence future est le site MDN
Alternativement, si vos dates sont dans un format, javascript peut analyser
var dif = Date.parse(MM + " " + DD + ", " + YYYY) - Date.parse(NN + " " + EE + ", " + ZZZZ);
et ensuite vous pouvez utiliser cette valeur comme différence en millisecondes (dif dans mes deux exemples a la même signification)
la source
yyyy
, les mois à 2 chiffres en majusculesMM
et les jours à 2 chiffres en minusculesdd
.t2
.Il suffit de soustraire:
var a = new Date(); alert("Wait a few seconds, then click OK"); var b = new Date(); var difference = (b - a) / 1000; alert("You waited: " + difference + " seconds");
la source
a
etb
et assurez-vous qu'il s'agit de dates.Si l'une de vos dates ou les deux sont dans le futur, j'ai bien peur que vous soyez SOL si vous voulez une précision à la seconde. L'heure UTC a des secondes intercalaires qui ne sont connues que 6 mois environ avant qu'elles ne se produisent, donc toute date plus éloignée que cela peut être inexacte d'un certain nombre de secondes (et en pratique, puisque les gens ne mettent pas à jour leurs machines si souvent, peut trouver que n'importe quel moment dans le futur est décalé d'un certain nombre de secondes).
Cela donne une bonne explication de la théorie de la conception des bibliothèques de date / heure et pourquoi il en est ainsi: http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs
la source
Vous pouvez le faire simplement.
var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000);
la source
créez deux
Date
objets et faites appelvalueOf()
aux deux, puis comparez-les.Référence d'objet de date JavaScript
la source
var a = new Date("2010 jan 10"), b = new Date("2010 jan 9"); alert( a + "\n" + b + "\n" + "Difference: " + ((+a - +b) / 1000) );
la source
Moyen facile:
function diff_hours(dt2, dt1) { var diff =(dt2.getTime() - dt1.getTime()) / 1000; diff /= (60 * 60); return Math.abs(Math.round(diff)); } function diff_minutes(dt2, dt1) { var diff =(dt2.getTime() - dt1.getTime()) / 1000; diff /= (60); return Math.abs(Math.round(diff)); } function diff_seconds(dt2, dt1) { var diff =(dt2.getTime() - dt1.getTime()) / 1000; return Math.abs(Math.round(diff)); } function diff_miliseconds(dt2, dt1) { var diff =(dt2.getTime() - dt1.getTime()); return Math.abs(Math.round(diff)); } dt1 = new Date(2014,10,2); dt2 = new Date(2014,10,3); console.log(diff_hours(dt1, dt2)); dt1 = new Date("October 13, 2014 08:11:00"); dt2 = new Date("October 14, 2014 11:13:00"); console.log(diff_hours(dt1, dt2)); console.log(diff_minutes(dt1, dt2)); console.log(diff_seconds(dt1, dt2)); console.log(diff_miliseconds(dt1, dt2));
la source
Dans bash:
bc <<< "$(date --date='1 week ago' +%s) - \ $(date --date='Sun, 29 Feb 2004 16:21:42 -0800' +%s)"
Il nécessite l'installation de bc et gnu date.
la source
.Net fournit la classe TimeSpan pour faire le calcul à votre place.
var time1 = new Date(YYYY, MM, DD, 0, 0, 0, 0) var time2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0) Dim ts As TimeSpan = time2.Subtract(time1) ts.TotalSeconds
la source