@ce1pers/date-helpers
Version:
Simple date time helpers.
132 lines (131 loc) • 4.73 kB
JavaScript
;
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;