Начало дня в JavaScript
Давайте получим объект с датой, содержащий начало текущего дня:
let now = new Date();
let date = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0);
Как вы уже знаете, параметры объекта Date
можно опускать с конца. В этом случае часы,
минуты и секунды будут иметь значение 0
.
Опустим их:
let now = new Date();
let date = new Date(now.getFullYear(), now.getMonth(), now.getDate());
А вот день опустить нельзя, так как если
он опущен, то примет значение 1
, а
нам нужен текущий день. Опустить месяц, не
опуская год также нельзя по правилам работы
с Date.
Опустить одновременно год, месяц и день также
нельзя - в этом случае возьмется текущий
момент времени. Почему это плохо, ведь нам
и нужен текущий год, текущий месяц и текущий
день? Дело в том, что нам нужна полночь,
то есть часы, минуты и секунды должны иметь
значение 0
, а в текущем моменте времени
они будут иметь текущие значения, а не полночь.
Определите, сколько часов прошло между началом дня и текущим моментом времени.