UNPKG

@ukbhra/common-utils

Version:

A collection of reusable utility functions for string, object, validation, and general operations in Node.js projects.

66 lines 2.44 kB
import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc.js'; import timezone from 'dayjs/plugin/timezone.js'; import isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js'; import isSameOrAfter from 'dayjs/plugin/isSameOrAfter.js'; import duration from 'dayjs/plugin/duration.js'; import relativeTime from 'dayjs/plugin/relativeTime.js'; import customParseFormat from 'dayjs/plugin/customParseFormat.js'; dayjs.extend(utc); dayjs.extend(timezone); dayjs.extend(isSameOrBefore); dayjs.extend(isSameOrAfter); dayjs.extend(duration); dayjs.extend(relativeTime); dayjs.extend(customParseFormat); /** * Format a date into the specified format (default: YYYY-MM-DD) */ export const formatDate = (date, format = 'YYYY-MM-DD', tz) => (tz ? dayjs(date).tz(tz).format(format) : dayjs(date).format(format)); /** * Get current timestamp in ISO or custom format */ export const now = (format = '') => format ? dayjs().format(format) : dayjs().toISOString(); /** * Add time (days/hours/minutes etc.) * Only valid units for manipulation: 'year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond' */ export const addTime = (date, amount, unit) => dayjs(date).add(amount, unit).toDate(); /** * Subtract time (days/hours/minutes etc.) * Only valid units for manipulation: 'year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond' */ export const subtractTime = (date, amount, unit) => dayjs(date).subtract(amount, unit).toDate(); /** * Get difference between two dates in specified unit */ export const diffIn = (date1, date2, unit = 'day', float = false) => dayjs(date1).diff(dayjs(date2), unit, float); /** * Check if two dates are on same day */ export const isSameDay = (date1, date2) => dayjs(date1).isSame(date2, 'day'); /** * Check if a date is in the past */ export const isPast = (date) => dayjs(date).isBefore(dayjs()); /** * Check if a date is in the future */ export const isFuture = (date) => dayjs(date).isAfter(dayjs()); /** * Get human readable relative time (e.g., "3 hours ago") */ export const fromNow = (date) => dayjs(date).fromNow(); /** * Convert date to UTC */ export const toUTC = (date) => dayjs(date).utc().toISOString(); /** * Convert to specific timezone */ export const toTimezone = (date, tz) => dayjs(date).tz(tz).format(); /** * Parse a date with custom format */ export const parseDate = (input, format) => dayjs(input, format); //# sourceMappingURL=dateUtil.js.map