UNPKG

@ce1pers/date-helpers

Version:
132 lines (131 loc) 4.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLastDateOfCurrentMonth = exports.getLastDateOfMonth = exports.getFirstDateOfCurrentMonth = exports.getFirstDateOfMonth = exports.withFormat = exports.convertDateToEight = exports.convertEightToDate = exports.getPassedTime = exports.divideDateByEight = exports.getTimeDifferenceAsHours = exports.getTimeDifferenceAsMinutes = exports.getTimeDifferenceAsSeconds = exports.getTimeDifference = void 0; const moment_1 = __importDefault(require("moment")); /** * ### Getting time difference. */ const getTimeDifference = (date) => Math.floor(new Date().getTime() - date.getTime()); exports.getTimeDifference = getTimeDifference; /** * ### Getting time difference as seconds. */ const getTimeDifferenceAsSeconds = (date) => Math.floor((0, exports.getTimeDifference)(date) / 1000); exports.getTimeDifferenceAsSeconds = getTimeDifferenceAsSeconds; /** * ### Getting time difference as minutes. */ const getTimeDifferenceAsMinutes = (date) => Math.floor((0, exports.getTimeDifferenceAsSeconds)(date) / 60); exports.getTimeDifferenceAsMinutes = getTimeDifferenceAsMinutes; /** * ### Getting time difference as hours. */ const getTimeDifferenceAsHours = (date) => Math.floor((0, exports.getTimeDifferenceAsMinutes)(date) / 60); exports.getTimeDifferenceAsHours = getTimeDifferenceAsHours; /** * ### Divide date by eight digits time. */ const divideDateByEight = (eight) => { if (eight.length !== 8) return null; return { year: Number(eight.slice(0, 4)), month: Number(eight.slice(4, 6)), date: Number(eight.slice(6, 8)), }; }; exports.divideDateByEight = divideDateByEight; /** * ### Get passed time. */ const getPassedTime = (date) => { try { const hours = (0, exports.getTimeDifferenceAsHours)(date); // There is hours difference? if (Boolean(hours) && hours > 0) { return { unit: "hour", time: hours }; } const minutes = (0, exports.getTimeDifferenceAsMinutes)(date); // There is minutes difference? if (Boolean(minutes) && minutes > 0) { return { unit: "minute", time: minutes }; } const seconds = (0, exports.getTimeDifferenceAsSeconds)(date); return { unit: "second", time: seconds }; } catch (error) { console.error(error.message); return null; } }; exports.getPassedTime = getPassedTime; /** * ### Convert eight digits to date. */ const convertEightToDate = (eight) => { try { // Divide date. const result = (0, exports.divideDateByEight)(eight); if (!result) throw new Error("Failed divide date by eight digits."); return new Date(`${result.year}-${result.month}-${result.date}`); } catch (error) { console.error(error.message); return null; } }; exports.convertEightToDate = convertEightToDate; /** * ### Convert date to eight digits. */ const convertDateToEight = (dateParam, divider) => { try { const year = dateParam.getFullYear(); const month = String(dateParam.getMonth() + 1).padStart(2, "0"); const date = String(dateParam.getDate()).padStart(2, "0"); return `${year}${divider ? divider : ""}${month}${divider ? divider : ""}${date}`; } catch (error) { console.error(error.message); return null; } }; exports.convertDateToEight = convertDateToEight; /** * ### Convert date format. */ const withFormat = (input) => { if (!input) return (0, moment_1.default)().format("YYYY-MM-DD"); const { date, format } = input; return (0, moment_1.default)(date ?? new Date()).format(format); }; exports.withFormat = withFormat; /** * ### Obtains first date of month from date or now. */ const getFirstDateOfMonth = (month) => (0, moment_1.default)() .month(month - 1) .startOf("month"); exports.getFirstDateOfMonth = getFirstDateOfMonth; /** * ### Obtains first date of current month. */ const getFirstDateOfCurrentMonth = () => (0, moment_1.default)().startOf("month"); exports.getFirstDateOfCurrentMonth = getFirstDateOfCurrentMonth; /** * ### Obtains last date of month from date or now. */ const getLastDateOfMonth = (month) => (0, moment_1.default)() .month(month - 1) .endOf("month"); exports.getLastDateOfMonth = getLastDateOfMonth; /** * ### Obtains last date of current month. */ const getLastDateOfCurrentMonth = () => (0, moment_1.default)().endOf("month"); exports.getLastDateOfCurrentMonth = getLastDateOfCurrentMonth;