Лучшим форматом строки для разбора строки является формат ISO даты вместе с конструктором объекта JavaScript Date.
Примеры формата ISO: YYYY-MM-DD
или YYYY-MM-DDTHH:MM:SS
.
Но подождите! Само по себе использование «формата ISO» не работает надежно само по себе.Строка иногда анализируется как UTC, а иногда как местное время (в зависимости от поставщика и версии браузера).Рекомендуется всегда хранить даты в формате UTC и выполнять вычисления в формате UTC.
Для анализа даты в формате UTC добавьте Z - например: new Date('2011-04-11T10:20:30Z')
.
Чтобы отобразить дату в формате UTC, используйте .toUTCString()
,
, чтобы отобразить дату по местному времени пользователя, используйте .toString()
.
Подробнее о MDN |Date и этот ответ .
Для старой совместимости с Internet Explorer (версии IE менее 9 не поддерживают формат ISO в конструкторе Date), вы должны разделить представление строки datetime на его частиа затем вы можете использовать конструктор, используя части даты и времени, например: new Date('2011', '04' - 1, '11', '11', '51', '00')
.Обратите внимание, что номер месяца должен быть на 1 меньше.
Альтернативный метод - используйте соответствующую библиотеку:
Вы также можете воспользоваться библиотекой Moment.js , позволяющий анализировать дату с указанным часовым поясом.