← All components
Day.js Date Library
Adds Day.js (v1.11.23), a 2kB immutable date-time library as a modern alternative to Moment.js with the same API. Parse, validate, manipulate, and display dates and times for modern browsers. Supports internationalization, plugins, and TypeScript.
Copy the files below, or open this folder on GitHub. Each file is stamped with a limited-use licence, generator and date. SHA-256 is of the published catalog bytes, before the stamp.
- id
- day-js
- stack
- Next.js
- version
- 1.0.0
- compatibility
- nextjs >=16 <17 · react >=19 <20
- requires
- nextjs-base
- env vars
- —
Verified passing · daily buildIntegrity sha256:5143e6361ea414dd…
Files (2)
lib/dayjs.ts · sha256:5143e6361ea414dd…
// Licensed by BotKelp — https://www.botkelp.com
/**
* Day.js configuration and utilities.
*
* This module exports Day.js configuration and helper functions
* for use in Next.js applications.
*
* See: https://day.js.org/
*/
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
import duration from 'dayjs/plugin/duration';
import relativeTime from 'dayjs/plugin/relativeTime';
// Extend Day.js with plugins
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.extend(duration);
dayjs.extend(relativeTime);
// Default date format
export const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD';
export const DEFAULT_DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
export const DEFAULT_TIME_FORMAT = 'HH:mm:ss';
// Common date utilities
export const formatDate = (date: dayjs.Dayjs | string | Date, format: string = DEFAULT_DATE_FORMAT): string => {
return dayjs(date).format(format);
};
export const formatDateTime = (date: dayjs.Dayjs | string | Date, format: string = DEFAULT_DATETIME_FORMAT): string => {
return dayjs(date).format(format);
};
export const formatTime = (date: dayjs.Dayjs | string | Date, format: string = DEFAULT_TIME_FORMAT): string => {
return dayjs(date).format(format);
};
// Relative time formatting
export const fromNow = (date: dayjs.Dayjs | string | Date): string => {
return dayjs(date).fromNow();
};
export const toNow = (date: dayjs.Dayjs | string | Date): string => {
return dayjs(date).toNow();
};
// Date comparison
export const isBefore = (date1: dayjs.Dayjs | string | Date, date2: dayjs.Dayjs | string | Date): boolean => {
return dayjs(date1).isBefore(dayjs(date2));
};
export const isAfter = (date1: dayjs.Dayjs | string | Date, date2: dayjs.Dayjs | string | Date): boolean => {
return dayjs(date1).isAfter(dayjs(date2));
};
export const isSame = (date1: dayjs.Dayjs | string | Date, date2: dayjs.Dayjs | string | Date, unit?: dayjs.OpUnitType): boolean => {
return dayjs(date1).isSame(dayjs(date2), unit);
};
// Date manipulation
export const add = (date: dayjs.Dayjs | string | Date, amount: number, unit: dayjs.ManipulateType): dayjs.Dayjs => {
return dayjs(date).add(amount, unit);
};
export const subtract = (date: dayjs.Dayjs | string | Date, amount: number, unit: dayjs.ManipulateType): dayjs.Dayjs => {
return dayjs(date).subtract(amount, unit);
};
// Start and end of period
export const startOf = (date: dayjs.Dayjs | string | Date, unit: dayjs.ManipulateType): dayjs.Dayjs => {
return dayjs(date).startOf(unit);
};
export const endOf = (date: dayjs.Dayjs | string | Date, unit: dayjs.ManipulateType): dayjs.Dayjs => {
return dayjs(date).endOf(unit);
};
// UTC and timezone utilities
export const utcDate = (date: dayjs.Dayjs | string | Date): dayjs.Dayjs => {
return dayjs(date).utc();
};
// Duration utilities
export const createDuration = (value: number, unit?: dayjs.OpUnitType): dayjs.Duration => {
// @ts-ignore - duration plugin types are complex
return dayjs.duration(value, unit);
};
// Export dayjs instance
export { dayjs };