Как преобразовать строку в формате гггг-мм-дд в Javascript объект даты без учета даты в формате UTC - PullRequest
2 голосов
/ 30 апреля 2020

У меня просто простой вопрос. Я хочу преобразовать строку в гггг-мм-дд в объект даты в javascript. Это кажется достаточно простым. Вы можете просто сделать следующее.

var date = new Date('2020-04-08');

Но в этом случае javascript считает дату '2020-04-08' UT C полуночи. Таким образом, фактическая дата, которая мне возвращается, следующая:

Tue Apr 07 2020 17:00:00 GMT-0700 (Pacific Daylight Time)

Я знаю, что могу создать дату в следующем формате

var date = new Date(2020, 3, 8);
Wed Apr 08 2020 00:00:00 GMT-0700 (Pacific Daylight Time)

Но это выглядит слишком хлопотно для извлечь год, месяц и дату из уже хорошо отформатированной строки даты. Разве нет простого способа преобразовать строку гггг-мм-дд в объект даты, не рассматривая ее как UT C дата?

Итак, в простейших терминах мой вопрос состоит в том, как мне сказать конструктор даты, что дата, которую я передаю, является не датой UT C, а локальной датой.

1 Ответ

2 голосов
/ 30 апреля 2020

Просто добавьте 'T00:00:00' к вашей строке даты.

const dateString = '2020-04-08'
const timeString = 'T00:00:00'

const date = new Date(dateString + timeString);
console.info(date.toString())

Из документации

Поддержка форматов ISO 8601 отличается в строках только для даты (например, 1970- 01-01 ") рассматриваются как UT C, а не как локальные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...