diff --git a/package-lock.json b/package-lock.json index 87a673f..da7f6db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@types/uuid": "^9.0.1", "axios": "^1.3.5", "date-fns": "^2.29.3", + "date-fns-tz": "^2.0.0", "discord-api-types": "^0.37.38", "discord.js": "^14.9.0", "dotenv": "^16.0.3", @@ -2626,6 +2627,14 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/date-fns-tz": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.0.tgz", + "integrity": "sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==", + "peerDependencies": { + "date-fns": ">=2.0.0" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -8905,6 +8914,12 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" }, + "date-fns-tz": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-fns-tz/-/date-fns-tz-2.0.0.tgz", + "integrity": "sha512-OAtcLdB9vxSXTWHdT8b398ARImVwQMyjfYGkKD2zaGpHseG2UPHbHjXELReErZFxWdSLph3c2zOaaTyHfOhERQ==", + "requires": {} + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", diff --git a/package.json b/package.json index 822f062..51b1333 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "@types/uuid": "^9.0.1", "axios": "^1.3.5", "date-fns": "^2.29.3", + "date-fns-tz": "^2.0.0", "discord-api-types": "^0.37.38", "discord.js": "^14.9.0", "dotenv": "^16.0.3", diff --git a/server/helper/dateHelper.ts b/server/helper/dateHelper.ts index 914f533..af93486 100644 --- a/server/helper/dateHelper.ts +++ b/server/helper/dateHelper.ts @@ -1,6 +1,8 @@ -import { format } from "date-fns"; +import { format, isToday, toDate } from "date-fns"; +import {utcToZonedTime} from "date-fns-tz" import { GuildScheduledEvent } from "discord.js"; import { logger } from "../logger"; +import de from "date-fns/locale/de"; export function createDateStringFromEvent(event: GuildScheduledEvent, requestId: string, guildId?: string): string { if(!event.scheduledStartAt) { @@ -8,9 +10,14 @@ export function createDateStringFromEvent(event: GuildScheduledEvent, requestId: return `"habe keinen Startzeitpunkt ermitteln können"` } - const date = format(event.scheduledStartAt, "dd.MM") - const time = format(event.scheduledStartAt, "HH:mm") - + const timeZone = 'Europe/Berlin' + const zonedDateTime = utcToZonedTime(event.scheduledStartAt, timeZone) + const time = format(zonedDateTime, "HH:mm", {locale: de}) + + if(isToday(zonedDateTime)) { + return `heute um ${time}` + } + const date = format(zonedDateTime, "eeee dd.MM", {locale: de}) return `am ${date} um ${time}` } \ No newline at end of file