Skip to content

Commit 4e72ba0

Browse files
committed
Use date-fns library for better human readable times
1 parent 525f02e commit 4e72ba0

File tree

3 files changed

+14
-44
lines changed

3 files changed

+14
-44
lines changed

index.js

+3-44
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
import expressWebsockets from "express-ws";
2828
import ical from "node-ical";
2929
import fs from "node:fs";
30+
import { formatDistanceToNow } from "date-fns";
3031

3132
// Prepare Markdown renderer to force links to always target="_blank"
3233
const renderer = {
@@ -1383,54 +1384,12 @@ const getTodayDateForHubVisitsAPI = () => {
13831384
const MIN = 1000 * 60;
13841385
const howManyMinutesAgo = (date) => {
13851386
if (!date) return null;
1386-
const millisNow = Date.now();
1387-
const millisThen = date.getTime();
1388-
const difference = millisNow - millisThen;
1389-
return difference < 0
1390-
? "in the future?" // ???
1391-
: difference < 2 * MIN
1392-
? "just now"
1393-
: difference < 5 * MIN
1394-
? "a few minutes ago"
1395-
: difference < 10 * MIN
1396-
? "five-ish minutes ago"
1397-
: difference < 20 * MIN
1398-
? "15 minutes ago"
1399-
: difference < 30 * MIN
1400-
? "recently"
1401-
: difference < 45 * MIN
1402-
? "a half hour ago"
1403-
: difference < 60 * MIN
1404-
? "45 min ago"
1405-
: difference < 80 * MIN
1406-
? "over an hour ago"
1407-
: "a while ago";
1387+
return formatDistanceToNow(date, { addSuffix: true });
14081388
};
14091389

14101390
const howLongInTheFuture = (date) => {
14111391
if (!date) return null;
1412-
const millisNow = Date.now();
1413-
const millisThen = date.getTime();
1414-
const difference = millisThen - millisNow;
1415-
return difference < 0
1416-
? "in the past?" // ???
1417-
: difference < 2 * MIN
1418-
? "now"
1419-
: difference < 5 * MIN
1420-
? "in a few minutes"
1421-
: difference < 10 * MIN
1422-
? "in five-ish minutes"
1423-
: difference < 20 * MIN
1424-
? "in 15 minutes"
1425-
: difference < 30 * MIN
1426-
? "in 20 minutes"
1427-
: difference < 45 * MIN
1428-
? "in a half hour"
1429-
: difference < 60 * MIN
1430-
? "in 45 min"
1431-
: difference < 80 * MIN
1432-
? "in just over an hour"
1433-
: "in quite a while";
1392+
return formatDistanceToNow(date, { addSuffix: true });
14341393
};
14351394

14361395
const countPhrase = (count) => {

package-lock.json

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"dependencies": {
1818
"@lucia-auth/adapter-postgresql": "^3.1.1",
1919
"actioncable-nodejs": "^1.0.4",
20+
"date-fns": "^3.6.0",
2021
"express": "^4.18.3",
2122
"express-ws": "^5.0.2",
2223
"lucia": "^3.0.1",

0 commit comments

Comments
 (0)