Выйдите за рамки встроенных в JavaScript возможностей даты и времени с помощью одной из этих заменяющих библиотек.

Встроенная в JavaScript поддержка обработки даты полезна, но ее использование может быть неудобным. Сложные операции, такие как преобразование часового пояса и форматирование даты, часто сложны.

К счастью, доступно несколько пакетов, которые упрощают работу с датами и временем в JavaScript. Здесь вы узнаете о некоторых из этих пакетов и о том, как начать работу с ними.

Когда дело доходит до работы с датами и временем, собственный объект даты JavaScript имеет ограниченный функционал.

Moment.js, библиотека JavaScript, представила множество функций, недоступных в собственном объекте Date. В результате она стала популярной библиотекой для работы с датами и временем.

Чтобы установить Moment.js с помощью npm, выполните следующую команду из каталога вашего проекта:

нпм установить момент

После установки вы можете импортировать Moment.js в свой проект и выполнять операции с библиотекой:

константа момент = требовать('момент');
константа сейчас = момент();
константа nowString = now.format('ГГГГ-ММ-ДД ЧЧ: мм: сс');

консоль.бревно(`Текущая дата и время ${теперьСтрока}`);

Этот фрагмент кода импортирует библиотеку Moment.js и создает объект момента, используя текущую дату и время с момент() функция. Затем он демонстрирует, как отформатировать созданный объект даты как строку с формат() метод, который принимает формат даты/времени в качестве аргумента.

Вы также можете использовать эту библиотеку для добавления и вычитания временных интервалов:

константа добавитьTenMinutes = момент (). добавить (10, 'минуты');
консоль.бревно(`${добавитьTenMinutes.format('ч: мм а')}`);

константа вычесть два дня = момент (). вычесть (2, 'дни');
консоль.бревно(`${вычестьTwoDays.format('dddd, MMMM Do YYYY')}`);

Программа выводит на консоль две переменные в разных форматах. Первый, добавитьTenMinutes, содержит результат добавления 10 минут к текущей дате и времени. Второй, вычесть два дня, имеет текущее значение даты и времени, из которого вычтены два дня.

Moment.js может выполнять другие операции, такие как проверка високосных лет и преобразование из одного формата даты в другой.

Важно отметить, что Moment.js больше не поддерживается основной командой разработчиков. Разработчики советуют использовать альтернативу вроде Luxon.js.

Luxon.js — это надежная и более современная библиотека JavaScript для работы с датами. Альтернатива Moment.js, она устраняет ограничения старой библиотеки, такие как изменчивость.

Вы можете установить Luxon с помощью npm, а затем импортировать его ДатаВремя класс в вашем проекте Node.js с помощью требовать() функция:

константа {ДатаВремя} = требовать('люксон');

В Luxon объекты DateTime относятся к экземплярам времени, вплоть до миллисекунд.

Вы можете создавать новые ДатаВремя объекты и получить доступ к их компонентам, таким как год, месяц, минута и секунда:

константа сейчас = ДатаВремя.сейчас();
константа год = сейчас.год;
константа минута = сейчас.минута;
константа секунда = сейчас.секунда;

Этот код создает новый ДатаВремя объект, представляющий текущую дату и время, используя сейчас() метод. Затем он обращается к компонентам этой даты с помощью год, минута, и второй характеристики.

Основное различие между Luxon.js и Moment.js заключается в их неизменном характере. Все объекты DateTime неизменяемы в Luxon, что означает, что вы не можете изменять свойства DateTime. Вместо этого вы можете создавать новые экземпляры DateTime из существующих.

Например:

константа сейчас = ДатаВремя.сейчас();
константа завтра = сейчас.плюс({ дни: 1 });

Этот код создает новый ДатаВремя объект с именем завтра на основе сейчас объект, используя плюс метод, передав ему значение 1 день в качестве аргумента. Метод plus создает новый объект DateTime с указанным количеством дней, добавленным к исходному объекту.

Еще одним преимуществом Luxon.js является надежная поддержка часовых поясов, что необходимо для работы с датами и временем в современных веб-приложениях. Библиотека использует API интернационализации в современных браузерах для обеспечения точной поддержки часового пояса.

Однако одним из недостатков Luxon.js являются ограниченные ресурсы сообщества.

Date-fns — это очень легкая библиотека JavaScript, предназначенная для работы с датами и временем. Он основан на собственном объекте JavaScript.

Date-fns использует методы функционального программирования и включает неизменяемую функцию, которая упрощает работу с датами и снижает вероятность ошибок в вашем коде.

После установки date-fns с помощью npm импортируйте пакет в свою программу с помощью функции require:

константа {формат, addDays} = требовать('свидание-fns');

Date-fns является модульным. Он содержит множество функций, доступ к которым можно получить, разрушив структуру пакета, как показано в блоке кода выше. Код импортирует только формат и функции addDays из библиотеки date-fns.

Вот пример того, как использовать обе эти функции:

константа сегодня = новыйДата();
константа formattedDate = формат (сегодня, 'гггг-ММ-дд');
консоль.log (дата форматирования);

константа завтра = формат (добавитьДни(сегодня, 1), 'гггг-ММ-дд');
консоль.log (завтра);

Эта программа демонстрирует использование библиотеки date-fns в JavaScript для форматирования дат и управления ими.

Он создает новый Дата объект, представляющий текущую дату. Он форматирует текущую дату, используя формат функция из библиотеки date-fns.

Затем он использует addDays Функция для создания нового объекта Date, представляющего завтрашнюю дату, форматирует его, используя формат функция и записывает как текущую, так и завтрашнюю дату на консоль в "гггг-мм-дд"формат.

Недостатком использования Date-fns является то, что он не поддерживает часовой пояс. Вместо этого он использует отдельную библиотеку для работы с часовыми поясами с помощью вспомогательных функций.

Day.js, еще одна очень легкая библиотека, — хороший выбор, если вы ищете неизменяемую, меньшую и более быструю альтернативу Moment.js.

Вы можете установить Day.js как пакет в свой проект JavaScript, выполнив следующую команду npm:

нпм установить дайджес

Чтобы импортировать Day.js в ваш проект после установки, вы можете использовать следующий код:

константа деньж = требовать('дайджс')

Вот некоторые основные функции и методы, доступные в Day.js.

константа сейчас = dayjs();

константа дата = деньjs('2023-03-23', 'ГГГГ-ММ-ДД');

константа месяц = ​​дата.месяц();

константа formattedDate = дата.формат('ММММ Д, ГГГГ');

константа следующая неделя = дата.добавить(1, 'неделя');

Приведенный выше код создает новый объект Day.js, представляющий текущую дату и время, анализирует строку даты в пользовательском формате и получает месяц из дата переменная. Он также показывает, как форматировать и добавлять экземпляр даты.

Как и Date-fns, Day.js не может самостоятельно поддерживать часовой пояс. Day.js использует систему плагинов, что делает ее использование запутанным.

Из рассматриваемых пакетов Day.js больше всего похож на Moment.js. Это упрощает переключение между ними, если это необходимо.

Выбор правильной библиотеки для вашего приложения

Выбор правильной библиотеки даты и времени для вашего приложения JavaScript — важное решение, которое может оказать большое влияние на качество и удобство сопровождения вашего кода.

Каждая из обсуждаемых здесь библиотек имеет свои сильные и слабые стороны, поэтому важно тщательно оценить свои требования, прежде чем принимать решение.