Неправильная дата отображается в новой дате () в JavaScript
Это то, что я получаю в консоли Chrome. Я передаю "2016-09-05"(ГГГГ-ММ-ДД) в качестве даты, и она показывает мне 4,2016 сентября в качестве даты.
Другой конструктор показывает правильную дату
Передача через запятую требует токенизации + синтаксического анализа + индексации нулевого месяца, чего я хочу избежать
3 ответа
Если вы пропустите время в new Date(string)
конструктор, время UTC предполагается. Таким образом, отображаемое значение на самом деле правильно. использование new Date('2016-09-05 00:00')
создать объект даты по местному времени.
Вы можете использовать Решение от UTC Date Conversion. Какие основы делает следующее:
console.log(new Date("2014-12-23"));
console.log(convertDateToUTC(new Date("2014-12-23")));
function convertDateToUTC(date) {
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
}
Вывод будет такой, как в консоли (для меня по крайней мере:D)
Вт 23 дек 2014 01:00:00 GMT+0100 (Mitteleuropäische Zeit)
Вт 23 дек 2014 00:00:00 GMT+0100 (Mitteleuropäische Zeit)
Использовать setFullYear синтаксис Date.setFullYear(год, месяц, день)
mydate = new Date();
mydate.setFullYear(2016, 08, 05);