summaryrefslogtreecommitdiff
path: root/node_modules/@11ty/eleventy-utils/src/DateCompare.js
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/@11ty/eleventy-utils/src/DateCompare.js
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/@11ty/eleventy-utils/src/DateCompare.js')
-rw-r--r--node_modules/@11ty/eleventy-utils/src/DateCompare.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/@11ty/eleventy-utils/src/DateCompare.js b/node_modules/@11ty/eleventy-utils/src/DateCompare.js
new file mode 100644
index 0000000..a160ace
--- /dev/null
+++ b/node_modules/@11ty/eleventy-utils/src/DateCompare.js
@@ -0,0 +1,41 @@
+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; \ No newline at end of file