JavaScript Форматы дат
JavaScript Ввод даты
Обычно существует 3 типа форматов ввода даты в JavaScript:
Тип | Пример |
---|---|
ISO Дата | "2015-03-25" (Международный стандарт) |
Краткая дата | "03/25/2015" |
Длинная дата | "Mar 25 2015" или "25 Mar 2015" |
Формат ISO соответствует строгим стандартам JavaScript.
Другие форматы не так хорошо определены и могут зависеть от браузера.
JavaScript Вывод даты
Независимо от формата ввода, JavaScript (по умолчанию) будет выводить даты в формате полнотекстовой строки:
JavaScript ISO Даты
ISO 8601 - международный стандарт представления даты и времени.
Синтаксис ISO 8601 (ГГГГ-ММ-ДД) также является предпочтительным форматом даты JavaScript:
Расчетная дата будет относиться к вашему часовому поясу.
В зависимости от вашего часового пояса приведенный выше результат будет варьироваться между 24 и 25 марта.
ISO Даты (Год и месяц)
Даты ISO можно записывать без указания дня (ГГГГ-ММ):
Часовые пояса будут отличаться от приведенного выше результата с 28 февраля по 1 марта.
ISO Даты (Только год)
Даты ISO могут быть написаны без месяца и дня (ГГГГ):
Часовые пояса будут отличаться от приведенного выше результата с 31 декабря 2014 г. по 1 января 2015 г.
ISO Даты (Дата-Время)
Даты ISO могут быть записаны с добавлением часов, минут и секунд (ГГГГ-ММ-ДДТЧЧ: ММ: ССЗ):
Дата и время разделяются заглавной буквой T.
Время UTC определяется с заглавной буквы Z.
Если вы хотите изменить время относительно UTC, удалите Z и вместо этого добавьте + HH:MM или -HH:MM:
UTC (Universal Time Coordinated - Всемирное координированное время) совпадает с GMT (Greenwich Mean Time - среднее время по Гринвичу).
Отсутствие T или Z в строке даты и времени может привести к разным результатам в разных браузерах.
Часовые пояса
При установке даты без указания часового пояса JavaScript будет использовать часовой пояс браузера.
При получении даты без указания часового пояса результат конвертируется в часовой пояс браузера.
Другими словами: если дата и время созданы в GMT (среднее время по Гринвичу), дата и время будут преобразованы в CDT (летнее время в центральной части США), если пользователь просматривает из центральной части США.
JavaScript Краткие даты
Краткие даты пишутся с помощью ММ/ДД/ГГГГ, синтаксис вроде этого:
ПРЕДУПРЕЖДЕНИЯ!
В некоторых браузерах месяцы или дни без начальных нулей могут приводить к ошибке:
const d = new Date("2015-3-25");
Поведение ГГГГ/ММ/ДД не определено.
Некоторые браузеры пытаются угадать формат. Некоторые вернут NaN.
const d = new Date("2015/03/25");
Поведение ДД-ММ-ГГГГ также не определено.
Некоторые браузеры пытаются угадать формат. Некоторые вернут NaN.
const d = new Date("25-03-2015");
JavaScript Длинные даты
Длинные даты чаще всего пишутся с помощью МММ ДД ГГГГ, синтаксис вроде этого:
Месяц и день могут быть в любом порядке:
Месяц может быть написан полностью (January) или сокращенно (Jan):
Запятые игнорируются. Имена нечувствительны к регистру:
Ввод даты - Парсинг дат
Если у вас есть допустимая строка даты, вы можете использовать метод Date.parse()
чтобы преобразовать её в миллисекунды.
Date.parse()
возвращает количество миллисекунд между датой и 1 января 1970 г.:
Пример
let msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
Попробуйте сами »
Затем вы можете использовать количество миллисекунд, чтобы преобразовать его в объект даты:
Пример
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;
Попробуйте сами »