J'ai donc deux dates YYYY-MM-DD
et ZZZZ-NN-EE
Comment puis-je savoir combien de secondes il y a entre eux?
Je prends YYYY & ZZZZ pour signifier des valeurs entières qui désignent l'année, MM & NN pour signifier des valeurs entières signifiant le mois de l'année et DD & EE sous forme d'entiers désignant 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 alors vous pouvez utiliser cette valeur comme différence en millisecondes (dif dans les deux exemples a la même signification)
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");
Si l'une de vos dates ou les deux sont à venir, j'ai bien peur que vous soyez SOL si vous voulez une précision à la seconde près. Le temps UTC a des secondes intercalaires qui ne sont pas connues jusqu'à environ 6 mois avant, ce qui fait que les dates plus éloignées peuvent être imprécises de quelques secondes (et en pratique, étant donné que les utilisateurs ne mettent pas à jour leurs machines plus souvent, vous peut trouver que tout moment dans le futur est décalé de quelques secondes).
Cela donne une bonne explication de la théorie de la conception de bibliothèques de date/heure et explique pourquoi: http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details .html # date_time.tradeoffs
Vous pouvez le faire simplement.
var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000);
créez deux objets Date
et appelez valueOf()
sur les deux, puis comparez-les.
var a = new Date("2010 jan 10"),
b = new Date("2010 jan 9");
alert(
a + "\n" +
b + "\n" +
"Difference: " + ((+a - +b) / 1000)
);