Dados dos Date()
objetos, donde uno es menor que el otro, ¿cómo hago un bucle todos los días entre las fechas?
for(loopDate = startDate; loopDate < endDate; loopDate += 1)
{
}
¿Funcionaría este tipo de bucle? Pero, ¿cómo puedo agregar un día al contador de bucles?
¡Gracias!
javascript
date
loops
Tom Gullen
fuente
fuente
Date.now()
al definirnow
?new Date()
devuelve la fecha actual como un objeto por defecto . ¿LlamarDate
sin elnew
constructor solo le da una cadena de fecha que luego convierte en un objeto de fecha?new Date(2012, 0, 1);
fue recoger el día incorrecto (un día antes),new Date(Date.UTC(2012, 0, 1))
funcionó bien.Basado en la respuesta de Tom Gullen.
fuente
Date
es un objeto global developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…Si startDate y endDate son de hecho objetos de fecha, podría convertirlos a un número de milisegundos desde la medianoche del 1 de enero de 1970, de esta manera:
Luego, podría pasar de uno a otro incrementando loopTime en 86400000 (1000 * 60 * 60 * 24) - número de milisegundos en un día:
fuente
86400000
segundos en un día. Este bucle es frágil a los cambios de horario de verano y otras condiciones de borde.Creo que encontré una respuesta aún más simple, si te permites usar Moment.js :
fuente
Aquí un código de trabajo simple, funcionó para mí
fuente
fuente
Según la respuesta de Tabare, tuve que agregar un día más al final, ya que el ciclo se corta antes
fuente
Si quieres una manera eficiente con milisegundos:
fuente
Supongamos que obtuvo la fecha de inicio y la fecha de finalización de la interfaz de usuario y la almacenó en la variable de alcance en el controlador.
Luego declare una matriz que se restablecerá en cada llamada de función para que en la próxima llamada para la función se puedan almacenar los nuevos datos.
var dayLabel = [];
Recuerde usar la nueva Fecha (su variable inicial) porque si no usa la nueva fecha y la asigna directamente a la variable, la función setDate cambiará el valor de la variable original en cada iteración`
fuente
Basado en la respuesta de Jayarjo:
fuente