Какво е date-fns?

date-fns е модерна JavaScript библиотека за работа с дати, която предоставя всеобхватни, последователни и надеждни инструменти за манипулиране на дати в JavaScript. За разлика от родния JavaScript обект Date, който има много странности и несъответствия, date-fns предлага модулен, функционален подход към манипулирането на дати. Тя е tree-shakeable, което означава, че включвате само функциите, които действително използвате, поддържайки размера на вашия bundle минимален. Библиотеката поддържа над 200 функции, покриващи всичко от форматиране и парсване до сравняване, манипулиране и локализиране на дати.

Защо да използвам playground за date-fns?

Работата с дати в JavaScript може да бъде трудна—часовите зони, форматните шаблони и аритметиката на датите често водят до неочаквани резултати. Среда на playground ви позволява да експериментирате с функции на date-fns в реално време, да видите незабавен резултат и да научите API без да настройвате пълен проект. Идеално е за тестване на форматни низове, отстраняване на грешки при изчисления на дати или бързо прототипиране на логика на дати преди интегрирането й в вашето приложение.

Описание на инструмента

Playground на date-fns е интерактивна среда за кодиране, която ви позволява да пишете и изпълнявате JavaScript код с предварително зареденото цялата библиотека date-fns. Цялата библиотека date-fns е достъпна чрез обекта dateFns, давайки ви достъп до всички 200+ функции. Кодът се изпълнява автоматично докато пишете (с debouncing), и всички резултати от console.log, console.warn и console.error се появяват в вградения терминал под редактора. Това го прави идеален за изучаване на date-fns, тестване на операции с дати и експериментиране с различни опции за форматиране.

Примери

Форматиране на текущата дата:

const now = new Date();
console.log(dateFns.format(now, "MMMM do, yyyy"));
// Резултат: December 30th, 2025

Изчисляване на дни между две дати:

const start = new Date(2025, 0, 1);
const end = new Date(2025, 11, 31);
console.log(dateFns.differenceInDays(end, start) + " дни");
// Резултат: 364 дни

Добавяне на време към дата:

const today = new Date();
const nextWeek = dateFns.addWeeks(today, 1);
const nextMonth = dateFns.addMonths(today, 1);
console.log("Следваща седмица:", dateFns.format(nextWeek, "yyyy-MM-dd"));
console.log("Следващ месец:", dateFns.format(nextMonth, "yyyy-MM-dd"));

Проверка дали дата е в миналото или бъдещето:

const date = new Date(2024, 5, 15);
console.log("Е ли в миналото?", dateFns.isPast(date));
console.log("Е ли в бъдещето?", dateFns.isFuture(date));

Парсване на низ с дата:

const parsed = dateFns.parse("25/12/2025", "dd/MM/yyyy", new Date());
console.log(dateFns.format(parsed, "EEEE, MMMM do, yyyy"));
// Резултат: Thursday, December 25th, 2025

Функции

  • Пълна библиотека date-fns: Достъп до всички 200+ функции на date-fns чрез обекта dateFns
  • Живо изпълнение на код: Кодът се изпълнява автоматично докато пишете с интелигентно debouncing
  • Вграден терминал: Преглед на резултата от конзолата незабавно без инструменти за разработчик на браузъра
  • Подсветяване на синтаксис: Подсветяване на синтаксис на JavaScript за по-добра четливост на кода
  • Обработка на грешки: Грешките при изпълнение се показват ясно в резултата на терминала

Случаи на употреба

  • Изучаване на date-fns: Експериментирайте с различни функции и вижте резултатите незабавно без настройка на проект
  • Тестване на формат на дата: Опитайте различни форматни низове, за да намерите точния модел на резултата, който ви трябва
  • Прототипиране на изчисления на дати: Тестирайте сложна аритметика на дати като добавяне на работни дни, намиране на интервали или сравняване на дати
  • Отстраняване на грешки в логиката на датите: Изолирайте и тестирайте фрагменти от код, свързани с дати от вашите проекти
  • Бързи преобразувания на дати: Преобразувайте между формати на дати или изчислявайте разликите във времето на лету

Често използвани функции на date-fns

Функция Описание Пример
format Форматиране на дата в низ dateFns.format(date, "yyyy-MM-dd")
parse Парсване на низ в дата dateFns.parse("2025-01-01", "yyyy-MM-dd", new Date())
addDays Добавяне на дни към дата dateFns.addDays(date, 7)
subMonths Изваждане на месеци от дата dateFns.subMonths(date, 3)
differenceInDays Получаване на дни между дати dateFns.differenceInDays(dateA, dateB)
isAfter Проверка дали дата е след друга dateFns.isAfter(dateA, dateB)
isBefore Проверка дали дата е преди друга dateFns.isBefore(dateA, dateB)
startOfMonth Получаване на първия ден на месец dateFns.startOfMonth(date)
endOfYear Получаване на последния момент на година dateFns.endOfYear(date)
formatDistance Разлика във времето в човешки формат dateFns.formatDistance(dateA, dateB)

Справка на токени за форматиране

Токен Описание Пример
yyyy 4-цифрена година 2025
MM 2-цифрен месец 01-12
MMMM Пълно име на месец January
dd 2-цифрен ден 01-31
do Ден с редност 1st, 2nd, 3rd
EEEE Пълно име на ден Monday
EEE Кратко име на ден Mon
HH Час в 24-часов формат 00-23
hh Час в 12-часов формат 01-12
mm Минути 00-59
ss Секунди 00-59
a AM/PM AM, PM