@11ty/eleventy-utils
Version:
Low level internal utilities to be shared amongst Eleventy projects
41 lines (35 loc) • 1.11 kB
JavaScript
class DateCompare {
static isTimestampWithinDuration(timestamp, duration, compareDate = Date.now()) {
// the default duration is Infinity (also "*")
if (!duration || duration === "*" || duration === Infinity) {
return true;
}
let expiration = timestamp + this.getDurationMs(duration);
// still valid
if (expiration > compareDate) {
return true;
}
// expired
return false;
}
static getDurationMs(duration = "0s") {
let durationUnits = duration.slice(-1);
let durationMultiplier;
if (durationUnits === "s") {
durationMultiplier = 1;
} else if (durationUnits === "m") {
durationMultiplier = 60;
} else if (durationUnits === "h") {
durationMultiplier = 60 * 60;
} else if (durationUnits === "d") {
durationMultiplier = 60 * 60 * 24;
} else if (durationUnits === "w") {
durationMultiplier = 60 * 60 * 24 * 7;
} else if (durationUnits === "y") {
durationMultiplier = 60 * 60 * 24 * 365;
}
let durationValue = parseInt(duration.slice(0, duration.length - 1), 10);
return durationValue * durationMultiplier * 1000;
}
}
module.exports = DateCompare;