UNPKG

@pawel-up/jexl

Version:

Javascript Expression Language: Powerful context-based expression parser and evaluator

181 lines 6.18 kB
export const NOW = () => new Date(); export const ADD_DAYS = (date, days) => { const newDate = new Date(date); newDate.setDate(newDate.getDate() + days); return newDate; }; export const FORMAT_SHORT = (date, locale) => { return new Date(date).toLocaleDateString(locale, { dateStyle: 'short' }); }; export const FORMAT_MEDIUM = (date, locale) => { return new Date(date).toLocaleDateString(locale, { dateStyle: 'medium' }); }; export const FORMAT_LONG = (date, locale) => { return new Date(date).toLocaleDateString(locale, { dateStyle: 'long' }); }; export const FORMAT_FULL = (date, locale) => { return new Date(date).toLocaleDateString(locale, { dateStyle: 'full' }); }; export const FORMAT_TIME_SHORT = (date, locale) => { return new Date(date).toLocaleTimeString(locale, { timeStyle: 'short' }); }; export const FORMAT_TIME_MEDIUM = (date, locale) => { return new Date(date).toLocaleTimeString(locale, { timeStyle: 'medium' }); }; export const FORMAT_TIME_LONG = (date, locale) => { return new Date(date).toLocaleTimeString(locale, { timeStyle: 'long' }); }; export const FORMAT_DATE_TIME = (date, dateStyle = 'medium', timeStyle = 'short', locale) => { return new Date(date).toLocaleString(locale, { dateStyle, timeStyle }); }; export const ADD_MONTHS = (date, months) => { const newDate = new Date(date); newDate.setMonth(newDate.getMonth() + months); return newDate; }; export const ADD_YEARS = (date, years) => { const newDate = new Date(date); newDate.setFullYear(newDate.getFullYear() + years); return newDate; }; export const ADD_HOURS = (date, hours) => { const newDate = new Date(date); newDate.setHours(newDate.getHours() + hours); return newDate; }; export const ADD_MINUTES = (date, minutes) => { const newDate = new Date(date); newDate.setMinutes(newDate.getMinutes() + minutes); return newDate; }; export const SUBTRACT_DAYS = (date, days) => { return ADD_DAYS(date, -days); }; export const SUBTRACT_MONTHS = (date, months) => { return ADD_MONTHS(date, -months); }; export const SUBTRACT_YEARS = (date, years) => { return ADD_YEARS(date, -years); }; export const DIFF_DAYS = (date1, date2) => { const timeDiff = new Date(date2).getTime() - new Date(date1).getTime(); return Math.ceil(timeDiff / (1000 * 3600 * 24)); }; export const DIFF_HOURS = (date1, date2) => { const timeDiff = new Date(date2).getTime() - new Date(date1).getTime(); return Math.ceil(timeDiff / (1000 * 3600)); }; export const DIFF_MINUTES = (date1, date2) => { const timeDiff = new Date(date2).getTime() - new Date(date1).getTime(); return Math.ceil(timeDiff / (1000 * 60)); }; export const START_OF_DAY = (date) => { const newDate = new Date(date); newDate.setHours(0, 0, 0, 0); return newDate; }; export const END_OF_DAY = (date) => { const newDate = new Date(date); newDate.setHours(23, 59, 59, 999); return newDate; }; export const START_OF_WEEK = (date) => { const newDate = new Date(date); const day = newDate.getDay(); const diff = newDate.getDate() - day; newDate.setDate(diff); return START_OF_DAY(newDate); }; export const END_OF_WEEK = (date) => { const newDate = new Date(date); const day = newDate.getDay(); const diff = newDate.getDate() - day + 6; newDate.setDate(diff); return END_OF_DAY(newDate); }; export const START_OF_MONTH = (date) => { const newDate = new Date(date); newDate.setDate(1); return START_OF_DAY(newDate); }; export const END_OF_MONTH = (date) => { const newDate = new Date(date); newDate.setMonth(newDate.getMonth() + 1, 0); return END_OF_DAY(newDate); }; export const START_OF_YEAR = (date) => { const newDate = new Date(date); newDate.setMonth(0, 1); return START_OF_DAY(newDate); }; export const END_OF_YEAR = (date) => { const newDate = new Date(date); newDate.setMonth(11, 31); return END_OF_DAY(newDate); }; export const IS_WEEKEND = (date) => { const day = new Date(date).getDay(); return day === 0 || day === 6; }; export const IS_WEEKDAY = (date) => { return !IS_WEEKEND(date); }; export const IS_LEAP_YEAR = (year) => { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; }; export const DAYS_IN_MONTH = (year, month) => { return new Date(year, month + 1, 0).getDate(); }; export const DAY_OF_YEAR = (date) => { const d = new Date(date); const today = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()); const start = Date.UTC(d.getUTCFullYear(), 0, 1); const diff = today - start; if (!diff) { return 1; } return diff / 86400000 + 1; }; export const WEEK_OF_YEAR = (date) => { const d = new Date(date); const dayNr = (d.getDay() + 6) % 7; d.setDate(d.getDate() - dayNr + 3); const jan4 = new Date(d.getFullYear(), 0, 4); const dayDiff = (d.getTime() - jan4.getTime()) / 86400000; return 1 + Math.ceil(dayDiff / 7); }; export const IS_SAME_DAY = (date1, date2) => { const d1 = new Date(date1); const d2 = new Date(date2); return d1.getFullYear() === d2.getFullYear() && d1.getMonth() === d2.getMonth() && d1.getDate() === d2.getDate(); }; export const IS_TODAY = (date) => { return IS_SAME_DAY(date, new Date()); }; export const IS_TOMORROW = (date) => { const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); return IS_SAME_DAY(date, tomorrow); }; export const IS_YESTERDAY = (date) => { const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); return IS_SAME_DAY(date, yesterday); }; export const PARSE_ISO_DATE = (dateString) => { return new Date(dateString); }; export const TO_ISO_DATE = (date) => { return new Date(date).toISOString(); }; export const GET_AGE = (birthDate) => { const today = new Date(); const bDate = new Date(birthDate); let age = today.getFullYear() - bDate.getFullYear(); const monthDiff = today.getMonth() - bDate.getMonth(); if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < bDate.getDate())) { age--; } return age; }; //# sourceMappingURL=date.js.map