Обычно существует 3 типа форматов ввода даты в JavaScript:
«25 марта 2015 г.» (Международный стандарт)
"25.03.2015"
«25 марта 2015 г.» или «25 марта 2015 г.»
Формат ISO соответствует строгому стандарту JavaScript.
Других форматов нет. настолько четко определен и может зависеть от браузера.
Независимо от формата ввода, JavaScript (по умолчанию) выводит даты полностью. формат текстовой строки:
<script>document.write(new Date())
ISO 8601 — международный стандарт представления дат и раз.
Синтаксис ISO 8601 (ГГГГ-ММ-ДД) также является предпочтительным форматом даты в JavaScript:
const d = new Date("2015-03-25");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015-03-25");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Вычисленная дата будет относиться к вашему часовому поясу.
В зависимости от вашего часового пояса результат выше будет меняться с 24 по 25 марта.
Даты ISO можно писать без указания дня (ГГГГ-ММ):
const d = new Date("2015-03");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015-03");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Часовые пояса будут варьироваться в приведенном выше результате в период с 28 февраля по 1 марта.
Даты ISO можно писать без месяца и дня (ГГГГ):
const d = new Date("2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Часовые пояса будут варьироваться в приведенном выше результате в период с 31 декабря 2014 г. по 1 января 2015 г.
Даты ISO могут быть записаны с добавлением часов, минут и секунд. (ГГГГ-ММ-ДДТЧЧ:ММ:ССЗ):
const d = new Date("2015-03-25T12:00:00Z");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p>Separate date and time with a capital T.</p>
<p>Indicate UTC time with a capital Z.</p>
<p id="demo"></p>
<script>
const d = new Date("2015-03-25T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Дата и время разделяются заглавной буквой Т.
Время UTC обозначается заглавной буквой Z.
Если вы хотите изменить время относительно UTC, удалите Z и добавьте +ЧЧ:ММ или -ЧЧ:ММ. вместо:
const d = new Date("2015-03-25T12:00:00-06:30");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p>Modify the time relative to UTC by adding +HH:MM or subtraction -HH:MM to the time.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>
</body>
</html>
UTC (всемирное координированное время) — это то же самое, что GMT (среднее время по Гринвичу).
Пропуск T или Z в строке даты и времени может дать разные результаты в разных браузерах.
При установке даты без указания часового пояса JavaScript будет использовать часовой пояс браузера.
При получении даты без указания часового пояса результат преобразуется в часовой пояс браузера.
Другими словами: если дата/время созданы в формате GMT (среднее время по Гринвичу), дата/время будут преобразованы в CDT (центральное летнее время США), если пользователь просматривает из центральной части США.
Короткие даты записываются в формате «ММ/ДД/ГГГГ» следующим образом:
const d = new Date("03/25/2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("03/25/2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
В некоторых браузерах месяцы или дни без ведущих нулей могут привести к ошибке:
const d = new Date("2015-3-25");Поведение «ГГГГ/ММ/ДД» не определено.
Некоторые браузеры будут попробуйте угадать формат. Некоторые вернут NaN.
const d = new Date("2015/03/25");Поведение "ДД-ММ-ГГГГ" также не определено.
Некоторые браузеры будут попробуйте угадать формат. Некоторые вернут NaN.
const d = new Date("25-03-2015");Длинные даты чаще всего записываются с помощью синтаксиса «МММ ДД ГГГГ», например:
const d = new Date("Mar 25 2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("Mar 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Месяц и день могут быть в любом порядке:
const d = new Date("25 Mar 2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("25 Mar 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
При этом месяц можно писать полностью (январь) или сокращенно (январь):
const d = new Date("January 25 2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("January 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
const d = new Date("Jan 25 2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("Jan 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Запятые игнорируются. Имена не чувствительны к регистру:
const d = new Date("JANUARY, 25, 2015");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("JANUARY, 25, 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Если у вас есть действительная строка даты, вы можете использовать Date.parse() для преобразования его в миллисекунды.
Date.parse() возвращает количество миллисекунд между датой и январем. 1 сентября 1970 года:
let msec = Date.parse("March 21, 2012");Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse() returns the number of milliseconds between the date and January 1, 1970:</p>
<p id="demo"></p>
<script>
const msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>
</body>
</html>
Затем вы можете использовать количество миллисекунд, чтобы преобразовать его в объект даты:
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse(string) returns milliseconds.</p>
<p>You can use the return value to convert the string to a date object:</p>
<p id="demo"></p>
<script>
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
Для получения полной информации о датах перейдите по ссылке:
Полная ссылка на дату в JavaScript.
Справочник содержит описания и примеры всех свойств Date и методы.