Inicio del día en JavaScript
Obtengamos un objeto de fecha que contenga el inicio del día actual:
let now = new Date();
let date = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);
Como ya sabes, los parámetros del objeto Date
se pueden omitir desde el final. En este caso, las horas,
minutos y segundos tendrán un valor de 0.
Vamos a omitirlos:
let now = new Date();
let date = new Date(now.getFullYear(), now.getMonth(), now.getDate());
Pero el día no se puede omitir, ya que si
se omite, tomará el valor 1, y
necesitamos el día actual. Tampoco se puede
omitir el mes sin omitir el año, según las reglas
de trabajo con Date.
Tampoco se puede omitir simultáneamente el año, el mes y el día,
en este caso se tomará el momento
actual. ¿Por qué es esto malo, si necesitamos
el año actual, el mes actual y el día actual?
El problema es que necesitamos la medianoche,
es decir, las horas, minutos y segundos deben tener
un valor de 0, mientras que en el momento actual
tendrán los valores actuales, no la medianoche.
Determina cuántas horas han pasado entre el inicio del día y el momento actual.