Я хочу получить текущую дату, но время должно быть 00:00:00.000
Я попробовал это:
var m = moment();
m.set({hour:0,minute:0,second:0,millisecond:0});
console.log(m.toISOString());
но у меня есть: 2016-01-12T23:00:00.000Z почему 23, а не 00?
Ответ 1
Moment.js сохраняет даты utc и может применять к нему разные временные интервалы. По умолчанию применяется локальный часовой пояс.
Если вы хотите установить время в utc date time, вам нужно указать часовой пояс utc.
Попробуйте использовать следующий код:
var m = moment().utcOffset(0);
m.set({hour:0,minute:0,second:0,millisecond:0})
m.toISOString()
m.format()
Ответ 2
moment.utc(0).format('HH:mm:ss')
Ответ 3
Вы не показали, как вы создаете строку 2016-01-12T23:00:00.000Z, но я предполагаю через .format().
В любом случае .set() использует ваш локальный часовой пояс, но Z в строке времени указывает нулевое время, иначе известный как UTC.
Итак, я предполагаю, что ваш часовой пояс составляет 23 часа с UTC?
saikumar answer показал, как загружать время в формате UTC, но другой вариант - использовать вызов .format(), который выводит с использованием вашего локального часового пояса, а не UTC.