Date.parse() превращает строку даты в timestamp.
Если говорить просто, этот метод берёт текстовую дату и возвращает количество миллисекунд с 1 января 1970 года 00:00:00 UTC.
Синтаксис
Базовая запись выглядит так:
Date.parse(dateString)
Где:
dateString- строка, которую JavaScript должен попытаться распознать как дату
Что возвращает Date.parse()
Метод возвращает число.
const timestamp = Date.parse("2025-01-15T10:30:00Z");
console.log(timestamp);
console.log(typeof timestamp); // "number"
Если строка не распознаётся, результатом будет NaN.
console.log(Date.parse("not-a-date")); // NaN
Это важный момент: Date.parse() возвращает не объект Date, а именно число или NaN.
Пример с ISO-строкой
Самый надёжный вариант - использовать ISO-формат.
const timestamp = Date.parse("2025-01-15T10:30:00Z");
console.log(timestamp);
Такую строку JavaScript обычно понимает предсказуемо.
Как превратить результат обратно в дату
Date.parse() возвращает timestamp, и его можно передать в new Date().
const timestamp = Date.parse("2025-01-15T10:30:00Z");
const date = new Date(timestamp);
console.log(date.toISOString()); // "2025-01-15T10:30:00.000Z"
То есть:
Date.parse()даёт числоnew Date(timestamp)превращает это число в объект даты
Date.parse() и new Date() со строкой
Эти записи очень близки по смыслу:
const a = Date.parse("2025-01-15T10:30:00Z");
const b = new Date("2025-01-15T10:30:00Z").getTime();
console.log(a === b); // true
Разница такая:
Date.parse()сразу возвращает timestampnew Date(string)создаёт объект даты
Если вам нужен только timestamp, Date.parse() может быть удобнее.
Если нужен сам объект даты, чаще проще сразу использовать new Date(string).
Что такое timestamp
Timestamp в JavaScript - это количество миллисекунд, прошедших с начала эпохи Unix:
1 января 1970 года00:00:00UTC
Именно в таком числовом виде JavaScript часто хранит и сравнивает моменты времени.
Пример со строкой без времени
Строка вроде "2025-01-15" тоже может быть разобрана:
const timestamp = Date.parse("2025-01-15");
console.log(timestamp);
Но важно помнить, что при дальнейшем выводе через new Date(timestamp) вы можете увидеть локальное время с учётом часового пояса пользователя.
Из-за этого с датами без времени нужно быть особенно внимательным.
Невалидная строка даёт NaN
Если строка не подходит, метод не создаёт дату и не возвращает объект ошибки как результат.
Он просто даёт NaN.
const result = Date.parse("abc");
console.log(result); // NaN
console.log(Number.isNaN(result)); // true
Такой результат обязательно стоит проверять, если строка приходит извне.
Форматы строк лучше не брать “на удачу”
Date.parse() может по-разному работать со строками, которые не являются нормальным ISO-форматом.
Например, такие варианты лучше не считать надёжными:
Date.parse("15/01/2025");
Date.parse("01-15-2025");
Подобные строки могут разбираться по-разному или вообще не распознаваться.
Для практики безопаснее использовать формат вроде:
"2025-01-15T10:30:00Z"
Когда это полезно
Date.parse() особенно удобен, когда:
- строка даты уже есть и нужен только timestamp
- надо сравнить дату как число
- хочется проверить, распознаётся ли строка как дата
- нужно быстро перевести текстовую дату в миллисекунды
Пример:
const start = Date.parse("2025-01-10T00:00:00Z");
const end = Date.parse("2025-01-15T00:00:00Z");
console.log(end > start); // true
Проверка строки даты
Иногда Date.parse() используют просто как способ понять, валидна строка или нет.
function isValidDateString(value) {
return !Number.isNaN(Date.parse(value));
}
console.log(isValidDateString("2025-01-15T10:30:00Z")); // true
console.log(isValidDateString("not-a-date")); // false
Для базовых задач это вполне рабочий вариант.
Date.parse() не форматирует дату
Метод только пытается разобрать строку и вернуть timestamp.
Он не выводит красивую дату и не создаёт строку в нужном формате.
const timestamp = Date.parse("2025-01-15T10:30:00Z");
console.log(timestamp);
Если нужен читаемый вывод, после этого обычно создают new Date(timestamp) и уже потом используют методы объекта даты.
Частые ошибки
Думать, что Date.parse() возвращает объект Date
const result = Date.parse("2025-01-15T10:30:00Z");
console.log(typeof result); // "number"
Это число, а не объект даты.
Забывать проверять NaN
const result = Date.parse("not-a-date");
Если строка может быть некорректной, полезно проверять Number.isNaN(result).
Использовать нестабильные форматы строки
Date.parse("15/01/2025");
Такие форматы лучше не считать надёжными.
Путать Date.parse() и new Date()
Если вам нужен объект с методами вроде getFullYear() или toISOString(), одного Date.parse() недостаточно.
Путать миллисекунды и секунды
Результат Date.parse() измеряется именно в миллисекундах.
Быстрая памятка
Date.parse()принимает строку даты- результатом будет timestamp в миллисекундах или
NaN Date.parse()не возвращает объектDateDate.parse(string)близок по смыслу кnew Date(string).getTime()- безопаснее всего использовать ISO-формат строки
- невалидная строка даёт
NaN
Коротко
Date.parse() в JavaScript нужен, чтобы превратить строку даты в timestamp. Главное, что стоит запомнить: метод возвращает число миллисекунд или NaN, поэтому особенно полезен для проверок и сравнений, но для строк лучше придерживаться ISO-формата.