Преминете отвъд вградените възможности за дата и час на JavaScript с една от тези заместващи библиотеки.

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

За щастие са налични няколко пакета, които правят работата с дати и часове в JavaScript по-малко стресираща. Тук ще научите за някои от тези пакети и как можете да започнете работа по тях.

Когато става въпрос за работа с дати и часове, родния обект на JavaScript Date има ограничена функционалност.

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

За да инсталирате Moment.js с npm, изпълнете следната команда от директорията на вашия проект:

npm Инсталирай момент

След инсталирането можете да импортирате Moment.js във вашия проект и да извършвате операции с библиотеката:

instagram viewer
конст момент = изискват('момент');
конст сега = момент();
конст nowString = now.format(„ГГГГ-ММ-ДД ЧЧ: мм: сс“);

конзола.log(`Текущата дата и час са ${nowString}`);

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

Можете също да използвате тази библиотека за добавяне и изваждане на интервали от време:

конст addTenMinutes = moment().add(10, 'минути');
конзола.log(`${addTenMinutes.format('h: mm a')}`);

конст subtractTwoDays = moment().subtract(2, "дни");
конзола.log(`${subtractTwoDays.format(„дддд, ММММ До ГГГГ“)}`);

Програмата регистрира две променливи в конзолата в различни формати. Първият, addTenMinutes, съдържа резултата от добавяне на 10 минути към текущите дата и час. Секундата, извадете два дни, има текущата стойност за дата и час с два дни, извадени от нея.

Moment.js може да извършва други операции като проверка за високосни години и конвертиране от един формат на дата в друг.

Важно е да се отбележи, че Moment.js вече не се поддържа от неговия основен екип за разработчици. Разработчиците съветват използването на алтернатива като Luxon.js.

Luxon.js е стабилна и по-модерна JavaScript библиотека за работа с дати. Алтернатива на Moment.js, той адресира ограниченията на по-старата библиотека като променливост.

Можете да инсталирате Luxon с npm и след това да го импортирате Време за среща клас във вашия проект Node.js, използвайки изисквам() функция:

конст { Дата и час } = изискват('luxon');

В Luxon обектите DateTime се отнасят до моменти на време, които достигат до милисекунди.

Можете да създавате нови Време за среща обекти и достъп до техните компоненти, като година, месец, минута и секунда:

конст сега = DateTime.now();
конст година = сега.година;
конст минута = сега.минута;
конст второ = сега.второ;

Този код създава нов Време за среща обект, представляващ текущата дата и час с помощта на сега() метод. След това има достъп до компонентите на тази дата, като използва година, минута, и второ Имоти.

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

Например:

конст сега = DateTime.now();
конст утре = сега.плюс({ дни: 1 });

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

Друго предимство на Luxon.js е неговата надеждна поддръжка на часови зони, което е от съществено значение за работа с дати и часове в съвременните уеб приложения. Библиотеката използва API за интернационализация в съвременните браузъри, за да осигури точна поддръжка на часови зони.

Един от недостатъците на Luxon.js обаче са неговите ограничени ресурси на общността.

Date-fns е много лека JavaScript библиотека, предназначена за работа с дати и часове. Той се основава на родния JavaScript обект.

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

След като инсталирате date-fns с npm, импортирайте пакета във вашата програма, като използвате функцията за изискване:

конст {формат, addDays} = изискват('date-fns');

Date-fns е модулен. Той съдържа много функции, до които можете да получите достъп чрез деструктуриране на пакета, както е показано в кодовия блок по-горе. Кодът импортира само функциите format и addDays от библиотеката date-fns.

Ето пример как да използвате и двете функции:

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

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

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

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

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

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

Day.js, друга много лека библиотека, е добър избор, ако търсите неизменна, по-малка и по-бърза алтернатива на Moment.js.

Можете да инсталирате Day.js като пакет във вашия JavaScript проект, като изпълните следната команда npm:

npm Инсталирай dayjs

За да импортирате Day.js във вашия проект след инсталиране, можете да използвате следния код:

конст dayjs = изискват('dayjs')

Ето някои основни функции и методи, налични в Day.js

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

конст дата = dayjs('2023-03-23', „ГГГГ-ММ-ДД“);

конст месец = date.month();

конст formattedDate = date.format(„MMMM D, YYYY“);

конст nextWeek = date.add(1, "седмица");

Горният код създава нов обект Day.js, представляващ текущата дата и час, анализира низ от дата с персонализиран формат и получава месеца от дата променлива. Той също така показва как да форматирате и добавите към екземпляр на дата.

Подобно на Date-fns, Day.js не може сам да осигури поддръжка на часови зони. Day.js използва плъгин система, което го прави объркващ за използване.

От обхванатите пакети Day.js е най-сходен с Moment.js. Това улеснява превключването между двете, ако е необходимо.

Избор на правилната библиотека за вашето приложение

Изборът на правилната библиотека с дата и час за вашето JavaScript приложение е важно решение, което може да окаже голямо влияние върху качеството и поддържаемостта на вашия код.

Всяка от обсъжданите тук библиотеки има своите силни и слаби страни, така че е важно внимателно да прецените вашите изисквания, преди да вземете решение.