Праца з датамі Выкарыстанне date-fns у JavaScript

Праца з датамі – справа няпростая. Але пакет date-fns дазваляе лёгка працаваць з датамі ў JavaScript.

Давайце паглыбімся ў пакет date-fns, каб зрабіць наша жыццё прасцей, чым раней. Пакет date-fns лёгкі.

Ўстаноўка пакета

Нам трэба наладзіць праект з npm для працы са староннім пакетам. Давайце хутка паглядзім крокі для завяршэння нашай наладкі.

Я мяркую, што ў вас усталяваны NodeJS або IDE, каб практыкаваць гэта.

  • Перайдзіце ў патрэбны каталог, у якім вы хочаце працаваць.
  • Выканайце каманду npm init, каб ініцыялізаваць праект.
  • Адкажыце на ўсе пытанні ў залежнасці ад вашых пераваг.
  • Цяпер усталюйце date-fns з дапамогай наступнай каманды
npm install date-fns
  • Стварыце файл з назвай dateFunctions.js

Цяпер мы гатовыя перайсці да пакета date-fns. Давайце вывучым некалькі асноўных метадаў з пакета.

isValid

Усе даты несапраўдныя.

Напрыклад, няма такой даты, як 2021-02-30. Як мы можам праверыць, сапраўдная дата ці не?

Метад isValid з пакета date-fns дапаможа нам даведацца, ці з’яўляецца дадзеная дата сапраўднай.

Праверце, ці нармальна працуе наступны код з дакладнасцю дат.

const { isValid } = require("date-fns");

console.log(isValid(new Date("2021, 02, 30")));

Калі вы выканаеце прыведзены вышэй код, вы ўбачыце, што 30 лютага 2021 г. сапраўдны. О! Гэта не.

Чаму гэта адбываецца?

JavaScript пераўтворыць дадатковы дзень лютага ў 1 сакавіка 2021 г., якое з’яўляецца сапраўднай датай. Каб пацвердзіць гэта, надрукуйце новую дату («2021, 02, 30») на кансолі.

console.log(new Date("2021, 02, 30"));

Пакет date-fns забяспечвае метад пад назвай parse для абыходу гэтай праблемы. Метад parse аналізуе ўказаную вамі дату і вяртае дакладныя вынікі.

Праверце гэта:  Што такое Easyanticheat.exe і ці бяспечна гэта?

Зірніце на код ніжэй.

const { isValid, parse } = require("date-fns");

const invalidDate = parse("30.02.2021", "dd.MM.yyyy", new Date());
const validDate = parse("25.03.2021", "dd.MM.yyyy", new Date());

console.log(isValid(invalidDate));
console.log(isValid(validDate));

фармат

Адным з асноўных спосабаў выкарыстання пры працы з датамі з’яўляецца іх фарматаванне па жаданні. Мы фарматуем даты ў розных фарматах, выкарыстоўваючы метад format з пакета date-fns.

Адфарматуйце дату ў выглядзе 23-01-1993, 1993-01-23 10:43:55, аўторак, 23 студзеня 1993 г. і г.д.. Запусціце наступны код, каб атрымаць адпаведную дату ў згаданых фарматах.

const { format } = require("date-fns");

console.log(format(new Date(), "dd-MM-yyyy"));
console.log(format(new Date(), "dd/MM/yyyy HH:mm:ss"));
console.log(format(new Date(), "PPPP"));

Вы можаце знайсці поўны спіс фарматаў тут.

addDays

Метад addDays выкарыстоўваецца, каб усталяваць крайні тэрмін праз некаторую колькасць дзён.

Проста мы можам дадаць дні да любой даты, каб праз некалькі дзён атрымаць дату дня. Ён мае шмат прыкладанняў.

Дапусцім, у вас дзень нараджэння праз X дзён, і вы ў гэтыя дні занятыя. Вы можаце не ўспомніць дзень нараджэння ў сваім шчыльным графіку. Вы можаце проста выкарыстоўваць метад addDays, каб паведаміць вам пра дзень нараджэння праз X дзён. Ёсць код.

const { format, addDays } = require("date-fns");

const today = new Date();

// birthday after 6 days
const birthday = addDays(today, 6);

console.log(format(today, "PPPP"));
console.log(format(birthday, "PPPP"));

Падобна метаду addDays, ёсць іншыя метады, такія як addHours, subHours, addMinutes, subMinutes, addSeconds, subSeconds, subDays, addWeeks, subWeeks, addYears, subYears і г.д.. Вы можаце лёгка здагадацца аб функцыянальнасці метадаў па іх назвах.

Паспрабуйце іх.

formatDistance

Напісанне кода для параўнання дат з нуля – кашмар. Чаму мы ўсё ж параўноўваем даты?

Ёсць шмат прыкладанняў, у якіх вы бачылі параўнанне дат. Калі вы возьмеце вэб-сайты сацыяльных сетак, там будзе слоган са згадкай 1 хвіліна таму, 12 гадзін таму, 1 дзень таму і г.д.. Тут мы выкарыстоўваем параўнанне дат ад даты і часу публікацыі да цяперашняй даты і часу.

Праверце гэта:  Як праверыць узровень зарада батарэі AirPods

Метад formatDistance робіць тое ж самае. Ён вяртае прамежак паміж дзвюма дадзенымі датамі.

Давайце напішам праграму для вызначэння вашага ўзросту.

const { formatDistance } = require("date-fns");

const birthday = new Date("1956, 01, 28");
const presentDay = new Date();

console.log(`Age: ${formatDistance(presentDay, birthday)}`);

кожныДзеньІнтэрвалу

Дапусцім, вы павінны знайсці імёны і даты прыкладна на X дзён. Метад eachDayOfInterval дапамагае нам знайсці дні паміж пачатковай і канчатковай датай.

Даведаемся пра гэта праз 30 дзён з сённяшняга дня.

const { addDays, eachDayOfInterval, format } = require("date-fns");

const presentDay = new Date();
const after30Days = addDays(presentDay, 30);

const _30Days = eachDayOfInterval({ start: presentDay, end: after30Days });

_30Days.forEach((day) => {
   console.log(format(day, "PPPP"));
});

макс. і мін

Метады max і min знаходзяць максімальную і мінімальную даты сярод зададзеных адпаведна. Метады ў date-fns вельмі знаёмыя, і лёгка здагадацца аб функцыянальнасці гэтых метадаў. Давайце напішам код.

const { min, max } = require("date-fns");

const _1 = new Date("1990, 04, 22");
const _2 = new Date("1990, 04, 23");
const _3 = new Date("1990, 04, 24");
const _4 = new Date("1990, 04, 25");

console.log(`Max: ${max([_1, _2, _3, _4])}`);
console.log(`Min: ${min([_1, _2, _3, _4])}`);

роўна

Вы можаце лёгка здагадацца аб функцыянальнасці метаду isEqual. Як вы лічыце, метад isEqual выкарыстоўваецца для праверкі роўных дзвюх дат. Глядзіце прыклад кода ніжэй.

const { isEqual } = require("date-fns");

const _1 = new Date();
const _2 = new Date();
const _3 = new Date("1900, 03, 22");

console.log(isEqual(_1, _2));
console.log(isEqual(_2, _3));
console.log(isEqual(_3, _1));

Заключэнне

Калі казаць пра кожны метад у пакеце date-fns, то на яго выкананне сыходзяць дні. Лепшы спосаб вывучыць любы пакет – гэта азнаёміцца ​​з яго асноўнымі метадамі, а затым прачытаць дакументацыю для атрымання дадатковай інфармацыі. Прымяніце той жа сцэнар для пакета date-fns.

Вы вывучылі асноўныя метады ў гэтым уроку. Пошук канкрэтнага выкарыстання ў дакументацыя або падумайце аб праходжанні онлайн-курсаў, такіх як JavaScript, jQuery і JSON.

Праверце гэта:  Калі Sombra выйдзе на PS4?

Шчаслівага кадавання 👨‍💻