Как получить дату из строки
Короткий ответ
Стандартный формат ISO YYYY-MM-DDTHH:mm понимает new Date() напрямую:
const date = new Date('2025-03-15T14:30');
console.log(date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours());Результат:
2025 3 15 14день.месяц.год
Другие форматы лучше разбирать вручную: их разбор в разных браузерах отличается:
const [day, month, year] = '25.12.2025'.split('.').map(Number);
const date = new Date(year, month - 1, day);
console.log(date.toDateString());Результат:
Thu Dec 25 2025Проверка результата
Непонятная строка даёт недействительную дату. Её getTime() возвращает NaN:
const date = new Date('not a date');
console.log(Number.isNaN(date.getTime()));
console.log(String(date));Результат:
true
Invalid DateЧастая ошибка
Строка только с датой, например 2025-03-15, читается как полночь по UTC, а не по местному времени. К западу от Гринвича она превращается в предыдущий день. Добавьте время или соберите дату из чисел:
const utc = new Date('2025-03-15');
const local = new Date('2025-03-15T00:00');
console.log(utc.toISOString());
console.log(local.getDate());Результат:
2025-03-15T00:00:00.000Z
15Функции из этого ответа
- Date.parse — Разбирает строку с датой и возвращает метку времени.
- Date.prototype.toISOString — Возвращает дату в формате ISO 8601 по UTC.