javascript - online - calcular tiempo entre dos horas
¿Cuántos segundos entre dos fechas? (8)
.Net proporciona la clase TimeSpan para hacer los cálculos por usted.
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
Así que tengo dos fechas YYYY-MM-DD
y ZZZZ-NN-EE
¿Cómo puedo saber cuántos segundos hay entre ellos?
En bash:
bc <<< "$(date --date=''1 week ago'' +%s) - /
$(date --date=''Sun, 29 Feb 2004 16:21:42 -0800'' +%s)"
Requiere tener instalada la fecha de bc y gnu.
Estoy tomando YYYY & ZZZZ para significar valores enteros que significan el año, MM & NN para significar valores enteros que significa el mes del año y DD & EE como valores enteros que significa el día del mes.
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);
Una fuente útil para futuras referencias es el sitio de MDN
Alternativamente, si sus fechas vienen en un formato, javascript puede analizar
var dif = Date.parse(MM + " " + DD + ", " YYYY) - Date.parse(NN + " " + EE + ", " +ZZZZ);
y luego puedes usar ese valor como la diferencia en milisegundos (dif en ambos ejemplos tiene el mismo significado)
Puedes hacerlo simplemente.
var secondBetweenTwoDate = Math.abs((new Date().getTime() - oldDate.getTime()) / 1000);
Si una o ambas fechas están en el futuro, me temo que eres SOL si quieres una precisión de segundo. La hora UTC tiene segundos intercalares que no se conocen hasta aproximadamente 6 meses antes de que sucedan, por lo que cualquier fecha posterior puede ser inexacta en algunos segundos (y en la práctica, ya que las personas no actualizan sus máquinas con frecuencia, puede encontrar que cualquier momento en el futuro está desactivado por algunos segundos).
Esto proporciona una buena explicación de la teoría del diseño de bibliotecas de fecha / hora y por qué esto es así: http://www.boost.org/doc/libs/1_41_0/doc/html/date_time/details.html#date_time.tradeoffs
Solo resta:
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");
crea dos objetos Date
y llama a valueOf()
en ambos, luego compáralos.
var a = new Date("2010 jan 10"),
b = new Date("2010 jan 9");
alert(
a + "/n" +
b + "/n" +
"Difference: " + ((+a - +b) / 1000)
);