UNPKG

@widergy/web-utils

Version:
112 lines (111 loc) 3.63 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.beforeToday = exports.getCurrentDate = void 0; exports.formatDatePartialFormat = formatDatePartialFormat; exports.formatDateFullFormat = formatDateFullFormat; exports.formatDatePartialFormatPreviousYear = formatDatePartialFormatPreviousYear; exports.formatDateToYYMMDDDD = formatDateToYYMMDDDD; exports.getMonthNumber = getMonthNumber; exports.getYearNumber = getYearNumber; exports.dateToString = dateToString; exports.howLongSince = howLongSince; const dayjs_1 = __importDefault(require("dayjs")); const isSameOrBefore_1 = __importDefault(require("dayjs/plugin/isSameOrBefore")); dayjs_1.default.extend(isSameOrBefore_1.default); function formatDatePartialFormat(date) { if (!date || !RegExp(/^\d{6,}$/).test(date)) { return date; } return `${date.substring(4, 6)}/${date.substring(0, 4)}`; } function formatDateFullFormat(date) { if (!date) { return date; } return `${date.substring(8, 10)}/${date.substring(5, 7)}/${date.substring(0, 4)}`; } function formatDatePartialFormatPreviousYear(period) { if (!period) { return period; } return `${period.substring(4, 6)}/${parseInt(period.substring(0, 4), 10) - 1}`; } function formatDateToYYMMDDDD(date) { if (!date) { return date; } return `${date.substring(6, 10)}-${date.substring(3, 5)}-${date.substring(0, 2)}`; } function getMonthNumber(period) { return parseInt(period.substring(4, 6), 10); } function getYearNumber(period) { return parseInt(period.substring(0, 4), 10); } function dateToString(date) { return `${date.getYear() + 1900}-${('0' + (date.getMonth() + 1)).substr(-2)}-${('0' + date.getDate()).substr(-2)}`; } function howLongSince(since, until) { if (!since || since > until) { return ' '; } const timeConstants = [1000, 60, 60, 24, 7, 4.3, 12]; const detailString = [ { singular: 'seg.', plural: 'seg.' }, { singular: 'min.', plural: 'min.' }, { singular: 'hora', plural: 'horas' }, { singular: 'día', plural: 'días' }, { singular: 'semana', plural: 'semanas' }, { singular: 'mes', plural: 'meses' }, { singular: 'año', plural: 'años' } ]; let value = new Date(until).getTime() - new Date(since).getTime(); for (let i = 0; i < timeConstants.length; i += 1) { value = Math.abs(Math.trunc(value / timeConstants[i])); if (!timeConstants[i + 1] || value < timeConstants[i + 1]) { return `HACE ${value} ${value > 1 ? detailString[i].plural : detailString[i].singular}`; } } return ' '; } const getCurrentDate = (dateFormat) => dateFormat ? (0, dayjs_1.default)().format(dateFormat) : (0, dayjs_1.default)(); exports.getCurrentDate = getCurrentDate; const beforeToday = (date) => (0, dayjs_1.default)().isSameOrBefore(date); exports.beforeToday = beforeToday; const DATE_UTILS = { formatDatePartialFormat, formatDateFullFormat, formatDatePartialFormatPreviousYear, formatDateToYYMMDDDD, getMonthNumber, getYearNumber, dateToString, howLongSince, getCurrentDate: exports.getCurrentDate, beforeToday: exports.beforeToday }; exports.default = DATE_UTILS;