Примечание. Следующая статья поможет вам: Работа с датами Использование date-fns в JavaScript
Работа с датами — непростая задача. Но пакет date-fns упрощает работу с датами в JavaScript.
Давайте углубимся в пакет date-fns, чтобы сделать нашу жизнь проще, чем раньше. Пакет date-fns легковесен.
Установка пакета
Нам нужно настроить проект с помощью npm для работы со сторонним пакетом. Давайте быстро рассмотрим шаги для завершения нашей настройки.
Я предполагаю, что у вас установлен NodeJS или IDE, чтобы попрактиковаться.
npm установить дату-fns
Теперь мы готовы перейти к пакету date-fns. Давайте пойдем и изучим некоторые основные методы из пакета.
является действительным
Все даты недействительны.
Например, нет такой даты, как 2021-02-30. Как мы можем проверить, действительна ли дата или нет?
Метод isValid из пакета date-fns поможет нам определить, действительна ли данная дата или нет.
Проверьте, нормально ли работает следующий код с правильностью дат.
const { isValid } = require(“date-fns”); console.log(isValid(новая дата(“2021, 02, 30”)));
Если вы выполните приведенный выше код, вы обнаружите, что 30 февраля 2021 года является действительным. Ой! Это не.
Почему это происходит?
JavaScript преобразует дополнительный день февраля в 1 марта 2021 года, что является допустимой датой. Чтобы подтвердить это, выведите в консоль новую дату (“2021, 02, 30”).
console.log(новая дата(“2021, 02, 30”));
Пакет date-fns предоставляет метод parse для решения этой проблемы. Метод parse анализирует дату, которую вы указали, и возвращает точные результаты.
Взгляните на приведенный ниже код.
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(формат(новая дата(), “PPPP”));
Полный список форматов вы можете найти здесь.
addDays
Метод addDays используется для установки крайнего срока, который наступает через некоторое количество дней.
Просто мы можем добавить дни к любой дате, чтобы получить дату дня через несколько дней. Он имеет множество приложений.
Допустим, у вас день рождения через X дней, и вы заняты в эти дни. Вы можете не помнить день рождения в своем плотном графике. Вы можете просто использовать метод addDays, чтобы уведомить вас о дне рождения через X дней. Имейте код.
const {format, addDays} = require(“date-fns”); const сегодня = новая дата(); // день рождения через 6 дней const Birthday = addDays(today, 6); console.log(format(сегодня, “PPPP”)); console.log(format(день рождения, “PPPP”));
Аналогично методу addDays существуют и другие методы, такие как addHours, subHours, addMinutes, subMinutes, addSeconds, subSeconds, subDays, addWeeks, subWeeks, addYears, subYears и т. д. Вы можете легко догадаться о функциональности методов по их именам.
Попробуйте их.
форматРасстояние
Написание кода для сравнения дат с нуля — кошмар. Почему мы вообще сравниваем даты?
Есть много приложений, где вы видели сравнения дат. Если вы возьмете веб-сайты социальных сетей, там будет слоган с упоминанием 1 минуту назад, 12 часов назад, 1 день назад, и т.д.. Здесь мы используем сравнение даты от даты и времени публикации до текущей даты и времени.
Метод formatDistance делает то же самое. Он возвращает разрыв между заданными двумя датами.
Давайте напишем программу для определения вашего возраста.
const { formatDistance } = require(“date-fns”); const Birthday = new Date(“1956, 01, 28”); const presentDay = новая дата(); console.log(`Возраст: ${formatDistance(presentDay, Birthday)}`);
каждыйDayOfInterval
Допустим, вам нужно найти имена и даты следующих X дней. Метод eachDayOfInterval помогает нам найти дни между начальной и конечной датами.
Давайте узнаем ближайшие 30 дней с сегодняшнего дня.
const { addDays, eachDayOfInterval, format } = require(“date-fns”); const presentDay = новая дата(); const after30Days = addDays (presentDay, 30); const _30Days = eachDayOfInterval({ start: presentDay, end: after30Days }); _30Days.forEach((день) => { console.log(format(день, “PPPP”)); });
макс и мин
Методы max и min находят максимальную и минимальную даты среди заданных дат соответственно. Методы в date-fns очень знакомы и легко догадаться о функциональности этих методов. Давайте напишем код.
const { мин, макс } = требуют (“дата-fns”); const _1 = новая дата (“1990, 04, 22”); const _2 = новая дата (“1990, 04, 23”); const _3 = новая дата (“1990, 04, 24”); const _4 = новая дата (“1990, 04, 25”); console.log(`Макс.: ${макс.([_1, _2, _3, _4])}`); console.log(`Мин: ${мин([_1, _2, _3, _4])}`);
равно
Вы можете легко догадаться о функциональности метода isEqual. Как вы думаете, метод isEqual используется для проверки того, равны ли две даты или нет. См. пример кода ниже.
const { isEqual } = require(“date-fns”); const _1 = новая дата(); const _2 = новая дата(); const _3 = новая дата (“1900, 03, 22”); console.log(равно(_1, _2)); console.log(равно(_2, _3)); console.log(равно(_3, _1));
Вывод
Если говорить о каждом методе в пакете date-fns, то на его выполнение уходят дни. Лучший способ изучить любой пакет — ознакомиться с его основными методами, а затем прочитать документацию для получения дополнительной информации. Примените тот же сценарий для пакета date-fns.
Вы изучили основные методы в этом уроке. Найдите конкретное использование в документации или подумайте о том, чтобы пройти онлайн-курсы, такие как JavaScript, jQuery и JSON.
Удачного кодирования 👨💻