Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить дату из строки

Короткий ответ

Стандартный формат 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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.