Преминете отвъд вградените възможности за дата и час на JavaScript с една от тези заместващи библиотеки.
Вградената поддръжка на JavaScript за обработка на дати е полезна, но може да бъде неудобна за използване. Сложните операции като преобразуване на часови зони и форматиране на дата често са предизвикателство.
За щастие са налични няколко пакета, които правят работата с дати и часове в JavaScript по-малко стресираща. Тук ще научите за някои от тези пакети и как можете да започнете работа по тях.
Когато става въпрос за работа с дати и часове, родния обект на JavaScript Date има ограничена функционалност.
Moment.js, JavaScript библиотека, въведе много функции, недостъпни в собствения обект Date. В резултат на това се превърна в основната библиотека за работа с дати и часове.
За да инсталирате Moment.js с npm, изпълнете следната команда от директорията на вашия проект:
npm Инсталирай момент
След инсталирането можете да импортирате Moment.js във вашия проект и да извършвате операции с библиотеката:
конст момент = изискват('момент');
конст сега = момент();
конст 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 приложение е важно решение, което може да окаже голямо влияние върху качеството и поддържаемостта на вашия код.
Всяка от обсъжданите тук библиотеки има своите силни и слаби страни, така че е важно внимателно да прецените вашите изисквания, преди да вземете решение.