| name | date-fns |
| description | Modern JavaScript date utility library with modular, tree-shakeable functions for formatting, parsing, comparison, and manipulation |
| layer | domain |
| category | utility |
| triggers | ["date-fns","date formatting","date parsing","date comparison","date manipulation","formatDistance","parseISO"] |
| inputs | ["Date formatting or display requirements","Date arithmetic or comparison logic","Timezone handling needs"] |
| outputs | ["Tree-shakeable date utility implementations","Locale-aware date formatting","Timezone-safe date operations"] |
| linksTo | ["typescript-frontend","react","nodejs"] |
| linkedFrom | ["forms","i18n"] |
| riskLevel | low |
| memoryReadPolicy | none |
| memoryWritePolicy | none |
| sideEffects | [] |
date-fns
Overview
Modern JavaScript date utility library. Each function is a standalone module — import only what you use for minimal bundle size. Works with native Date objects (no wrapper types).
When to Use
- Formatting dates for display (relative time, localized strings, durations)
- Parsing date strings from APIs or user input
- Comparing or sorting dates, checking ranges
- Date arithmetic (add/subtract days, find start/end of periods)
- Timezone conversions (via
date-fns-tz)
Key Patterns
Formatting
import { format, formatDistance, formatRelative, formatDuration, intervalToDuration } from 'date-fns';
format(new Date(), 'yyyy-MM-dd HH:mm');
formatDistance(subDays(new Date(), 3), new Date());
formatRelative(subDays(new Date(), 1), new Date());
formatDuration(intervalToDuration({ start: 0, end: 90000000 }));
Parsing
import { parse, parseISO } from 'date-fns';
parseISO();
(, , ());