254 votes

Combien de secondes entre deux dates?

J'ai donc deux dates AAAA-MM-JJ et ZZZZ-NN-EE

Comment puis-je savoir combien de secondes il y a entre eux?

330voto

Martin Points 4844

Je vais prendre AAAA & ZZZZ à la moyenne des valeurs entières, ce qui signifie à l'année, MM ET NN à la moyenne des valeurs entières sens le mois de l'année et DD ET EE sous forme de valeurs entières sens 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 pratique source de référence pour l'avenir est le MDN site

Sinon, si vos dates viennent dans un format javascript peut analyser

var dif = Date.parse(MM + " " + DD + ", " YYYY) - Date.parse(NN + " " + EE + ", " +ZZZZ);

et puis vous pouvez utiliser cette valeur comme la différence en millisecondes (dif dans mes deux exemples a le même sens)

116voto

Seth Points 18568

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

16voto

rmeador Points 15107

Si un ou deux de vos dates dans le futur, alors je crains que vous ayez SOL si vous voulez de la précision d'une seconde. L'heure UTC est des secondes intercalaires qui ne sont pas connus jusqu'à environ 6 mois avant qu'ils se produisent, de sorte que toute les dates plus loin que ça peut être inexacts par un certain nombre de secondes (et en pratique, puisque les gens ne sont pas mis à jour leurs machines qui, souvent, vous pouvez trouver que tout moment dans l'avenir est désactivée par certains nombre de secondes).

Cela donne une bonne explication de la théorie de la conception de la date/l'heure des bibliothèques et pourquoi il en est ainsi: http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs

6voto

Jacob Relkin Points 90729

créez deux objets Date et appelez valueOf() sur les deux, puis comparez-les.

Référence d'objet JavaScript Date

6voto

Justin Johnson Points 16243
var a = new Date("2010 jan 10"),
    b = new Date("2010 jan 9");

alert(
    a + "\n" + 
    b + "\n" +
    "Difference: " + ((+a - +b) / 1000)
);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X