Идите даље од ЈаваСцрипт-ових уграђених могућности датума и времена помоћу једне од ових заменских библиотека.

ЈаваСцрипт-ова уграђена подршка за руковање датумима је корисна, али може бити незгодна за коришћење. Сложене операције као што су конверзије временске зоне и форматирање датума често су изазовне.

Срећом, доступно је неколико пакета који рад са датумима и временом у ЈаваСцрипт-у чине мање стресним. Овде ћете научити о неким од ових пакета и како можете да почнете да радите на овим пакетима.

Када је у питању рад са датумима и временом, изворни ЈаваСцрипт објекат датума има ограничену функционалност.

Момент.јс, ЈаваСцрипт библиотека, увела је многе функције које нису доступне у изворном објекту Дате. Као резултат тога, постала је библиотека за рад са датумима и временима.

Да бисте инсталирали Момент.јс са нпм-ом, покрените следећу команду из директоријума пројекта:

нпм инсталирај момент

Након инсталације, можете да увезете Момент.јс у свој пројекат и извршите операције са библиотеком:

конст момент = захтевају('тренутак');
конст сада = момент();
конст новСтринг = нов.формат('ГГГГ-ММ-ДД ХХ: мм: сс');

конзола.Пријава(`Тренутни датум и време су ${новСтринг}`);

Овај исечак кода увози библиотеку Момент.јс и креира објекат момента користећи тренутни датум и време са тренутак() функција. Затим показује како форматирати креирани објекат датума као стринг са формат() метод, који узима формат датума/времена као аргумент.

Ову библиотеку можете користити и за додавање и одузимање временских интервала:

конст аддТенМинутес = момент().адд(10, 'минута');
конзола.Пријава(`${аддТенМинутес.формат('х: мм а')}`);

конст субтрацтТвоДаис = момент().субтрацт(2, 'дани');
конзола.Пријава(`${субтрацтТвоДаис.формат('дддд, ММММ до ГГГГ')}`);

Програм евидентира две променљиве на конзоли, у различитим форматима. Први, аддТенМинутес, садржи резултат додавања 10 минута тренутном датуму и времену. Друга, субтрацтТвоДаис, има тренутну вредност датума и времена са два дана одузета од њега.

Момент.јс може да обавља друге операције као што је провера преступних година и конверзија из једног формата датума у ​​други.

Важно је напоменути да Момент.јс више не одржава његов главни тим програмера. Програмери саветују коришћење алтернативе као што је Лукон.јс.

Лукон.јс је робусна и модернија ЈаваСцрипт библиотека за рад са датумима. Алтернатива Момент.јс, он се бави ограничењима старије библиотеке као што је променљивост.

Можете инсталирати Лукон са нпм-ом и затим га увести Датум време класе у вашем Ноде.јс пројекту користећи захтевају() функција:

конст {ДатеТиме} = захтевају('лукон');

У Лукон-у, објекти ДатеТиме се односе на временске инстанце које сежу све до милисекунди.

Можете креирати нове Датум време објектима и приступите њиховим компонентама, као што су година, месец, минут и секунд:

конст сада = ДатеТиме.нов();
конст година = сада.година;
конст минута = сада.минута;
конст сецонд = нов.сецонд;

Овај код креира нови Датум време објекат који представља тренутни датум и време користећи Сада() методом. Затим приступа компонентама тог датума користећи године, минут, и друго својства.

Главна разлика између Лукон.јс и Момент.јс је његов непроменљив карактер. Сви објекти ДатеТиме су непроменљиви у Лукону, што значи да не можете да мењате својства ДатеТиме. Уместо тога, можете креирати нове ДатеТиме инстанце од постојећих.

На пример:

конст сада = ДатеТиме.нов();
конст сутра = сада.плус({ дана: 1 });

Овај код креира нови Датум време објекат именован сутра базира на Сада објекат, користећи плус метод, прослеђујући му вредност од 1 дан као аргумент. Метод плус креира нови објекат ДатеТиме са наведеним бројем дана додатим оригиналном објекту.

Још једна предност Лукон.јс-а је његова поуздана подршка за временску зону, која је неопходна за рад са датумима и временом у модерним веб апликацијама. Библиотека користи АПИ за интернационализацију у модерним претраживачима да би се обезбедила тачна подршка за временску зону.

Међутим, један од недостатака Лукон.јс-а су његови ограничени ресурси заједнице.

Дате-фнс је веома лагана ЈаваСцрипт библиотека дизајнирана за рад са датумима и временима. Гради се на изворном ЈаваСцрипт објекту.

Дате-фнс користи технике функционалног програмирања и укључује непроменљиву функцију, која чини рад са датумима једноставнијим и смањује вероватноћу грешака у вашем коду.

Након инсталирања дате-фнс са нпм-ом, увезите пакет у свој програм користећи функцију рекуире:

конст { формат, аддДаис } = захтевају('датум-фнс');

Дате-фнс је модуларан. Садржи много функција којима можете приступити деструктурирањем пакета, као што је приказано у блоку кода изнад. Код увози само функције формата и аддДаис из библиотеке дате-фнс.

Ево примера како да користите обе те функције:

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

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

Овај програм демонстрира коришћење библиотеке дате-фнс у ЈаваСцрипт-у за форматирање и манипулацију датумима.

То ствара ново Датум објекат који представља тренутни датум. Форматира тренутни датум користећи формату функцију из библиотеке дате-фнс.

Затим користи аддДаис функцију за креирање новог објекта Дате који представља сутрашњи датум, форматира га помоћу формату функцију, и евидентира и тренутни и сутрашњи датум на конзоли у "гггг-ММ-дд„формат.

Недостатак коришћења Дате-фнс је што не пружа подршку за временску зону. Уместо тога, користи засебну библиотеку за рад са временским зонама користећи помоћне функције.

Даи.јс, још једна веома лагана библиотека, је добар избор ако тражите непроменљиву, мању, бржу алтернативу за Момент.јс.

Можете да инсталирате Даи.јс као пакет у свој ЈаваСцрипт пројекат тако што ћете покренути следећу нпм команду:

нпм инсталирај даијс

Да бисте увезли Даи.јс у свој пројекат након инсталације, можете користити следећи код:

конст даијс = захтевају('даијс')

Ево неких основних функција и метода доступних у Даи.јс

конст сада = даијс();

конст датум = даијс('2023-03-23', 'ГГГГ-ММ-ДД');

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

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

конст следећа недеља = дате.адд(1, 'Недеља');

Горњи код креира нови Даи.јс објекат који представља тренутни датум и време, анализира стринг датума у ​​прилагођеном формату и добија месец из датум променљива. Такође показује како форматирати и додати инстанцу датума.

Као и Дате-фнс, Даи.јс не може сам да обезбеди подршку за временску зону. Даи.јс користи систем додатака, што га чини збуњујућим за употребу.

Од покривених пакета, Даи.јс је најсличнији Момент.јс. Ово олакшава пребацивање између њих ако је потребно.

Одабир праве библиотеке за вашу апликацију

Одабир праве библиотеке датума и времена за вашу ЈаваСцрипт апликацију је важна одлука која може имати велики утицај на квалитет и могућност одржавања вашег кода.

Свака библиотека о којој се овде говори има своје предности и слабости, тако да је важно да пажљиво процените своје захтеве пре него што донесете одлуку.