TypeScript:
Анализ даты из строки
Как это сделать:
// Базовый разбор с использованием конструктора Date
const myDate = new Date('2020-01-01');
console.log(myDate.toString()); // Вывод: Ср. 01 янв. 2020 ...
// Разбор с помощью библиотеки, например date-fns
import { parseISO } from 'date-fns';
const myParsedDate = parseISO('2020-01-01');
console.log(myParsedDate.toString()); // Вывод: Ср. 01 янв. 2020 ...
Пример вывода для обоих случаев:
Ср. 01 янв. 2020 00:00:00 GMT+0000 (Всемирное координированное время)
Подробнее
Разбор дат из строк всегда был довольно болезненной точкой в JavaScript, основном языке TypeScript. Неточный или различный разбор в разных браузерах заставил программистов искать более надежные решения.
Исторически библиотека Moment.js была основным средством для разбора и манипулирования датами, но сейчас она считается устаревшим проектом. Альтернативы, такие как date-fns и Day.js, предлагают аналогичную функциональность с меньшим размером.
В процессе разбора нужно учитывать форматы, часовые пояса и локализацию. Разные страны могут иметь разные форматы дат, например, MM/DD/YYYY
против DD/MM/YYYY
. Часовые пояса могут исказить фактический момент времени, если с ними не обращаться должным образом.
При реализации парсера необходимо учитывать следующее:
- Согласованность: Убедитесь, что дата разбирается одинаково во всех средах, в которых работает ваше приложение.
- Валидация: Проверьте, что строка действительно является допустимой датой.
- Обработка локали и часового пояса: Используйте библиотеки или встроенные API, такие как
Intl.DateTimeFormat
, для этого.
Библиотеки абстрагируют эти сложности, позволяя вам разбирать строки в объекты даты с помощью простых вызовов функций.