Как мы все знаем, момент.js некоторое время не рекомендовался его авторами. Они предлагают вам использовать другие библиотеки для управления временем или просто использовать ванильный JavaScript.

Мне самому никогда не нравился moment.js по разным причинам (в первую очередь, я помню, как он взорвал размер пакета небольшого мобильного веб-приложения, которое я помогал разрабатывать много лет назад, когда впервые столкнулся с moment.js), и я Я рад, что мир потихоньку приходит в себя.

Недавно я имел удовольствие удалить moment.js из репозитория и решил поделиться своим опытом. Оказывается, единственное, для чего мы использовали moment.js, — это форматирование дат!

Нам нужны были только два формата: один для GUI (стандартный норвежский формат) и один для API (ISO). Поэтому я сделал это как можно проще, я написал функцию «formatDate» на TypeScript, которая допускала только эти два формата:

С помощью TypeScript я заставляю весь код (и разработчиков, поддерживающих код) придерживаться двух наших единственно допустимых форматов: для графического интерфейса и для API. Таким образом, я фактически обнаружил две ошибки в существующем коде, используя moment.js, которые не были обнаружены. У нас был странный случай формата MM-DD-YYYY, а также формат MM.DD.YY, который, скорее всего, был непреднамеренным. С помощью TypeScript они были обнаружены и удалены.

Если все, что вам нужно сделать, это отформатировать дату в нескольких разных форматах (вариант GUI и вариант API), я думаю, что этот подход действительно самый простой и прямой. Вы ничего не получите, внедрив moment.js или любые другие библиотеки в качестве зависимостей в свой проект!

Если вашему приложению необходимо форматировать дату в соответствии с пользовательскими настройками/языком, я бы, с другой стороны, не предлагал этот маршрут, вам лучше обратиться к более современной библиотеке, которая исправит это за вас с помощью нового существующего API интернационализации Intl. во всех современных веб-браузерах.