Advanced

Plugins

Day.js has a plugin system to extend functionality. The core is intentionally minimal; plugins add features on demand.

Day.js has a plugin system to extend functionality. The core is intentionally minimal; plugins add features on demand.

Loading a Plugin

import pluginName from 'dayjs/plugin/pluginName';
dayjs.extend(pluginName);

Official Plugins

PluginDescription
AdvancedFormatExtended format tokens like Q, Do, k, kk
ArraySupportCreate Day.js from [year, month, day] arrays
BadMutableMakes Day.js mutable (mutates original)
BigIntSupportBigInt timestamp parsing
BuddhistEraBuddhist Era (BE) year display
Calendar.calendar() method for calendar-time strings
CustomParseFormatParse strings with custom format patterns
DayOfYear.dayOfYear() getter/setter
DurationFull duration/interval API
IsBetween.isBetween() comparison
IsLeapYear.isLeapYear() check
IsSameOrAfter.isSameOrAfter() comparison
IsSameOrBefore.isSameOrBefore() comparison
IsToday.isToday() check
IsTomorrow.isTomorrow() check
IsYesterday.isYesterday() check
IsoWeekISO week getters/setters
IsoWeeksInYear.isoWeeksInYear() method
LocaleDataAccess locale-specific data
LocalizedFormatLocale-aware format tokens (L, LL, LT)
MinMaxdayjs.max() and dayjs.min()
ObjectSupportCreate Day.js from plain objects
PluralGetSetPlural getter/setter aliases (.years(), .months())
PreParsePostFormatHook into parse/format stages
QuarterOfYear.quarter() getter/setter
RelativeTime.fromNow(), .from(), .toNow(), .to()
TimezoneFull timezone support via dayjs.tz()
ToArray.toArray() method
ToObject.toObject() method
UpdateLocaleUpdate locale data at runtime
UTCUTC mode (.utc(), .local(), .utcOffset())
WeekOfYear.week() getter/setter
WeekYear.weekYear() getter/setter
WeekdayLocale-aware .weekday()

Duration Plugin

dayjs.extend(Duration);

const dur = dayjs.duration(3600000); // 1 hour in ms
dur.humanize(); // "an hour"
dur.format('HH:mm:ss'); // "01:00:00"
dur.minutes(); // 60
dur.as('hours'); // 1

// From an object
const dur2 = dayjs.duration({ hours: 2, minutes: 30 });
dur2.humanize(); // "2.5 hours"

Timezone Plugin

dayjs.extend(UTC);
dayjs.extend(Timezone);

// Guess user timezone
dayjs.tz.guess(); // "Europe/Istanbul"

// Parse in a specific timezone
dayjs.tz('2024-06-15 10:00', 'America/New_York');

// Convert to timezone
dayjs('2024-06-15').tz('Asia/Tokyo');

// Set default timezone
dayjs.tz.setDefault('America/New_York');