From 349262b8c82c96ad8c4237d2a191d4b7ba208b13 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 2 Oct 2026 15:49:05 +0200 Subject: parse the dates provided by moodle manually The reported date values are in german locale and can not be parsed by my browser for example. --- src/utils-common.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/utils-common.ts') diff --git a/src/utils-common.ts b/src/utils-common.ts index d644b10..055fee6 100644 --- a/src/utils-common.ts +++ b/src/utils-common.ts @@ -77,3 +77,29 @@ export function splitmix32(a: number) { return ((t = t ^ (t >>> 15)) >>> 0) / 4294967296; }; } + +const MOODLE_DATE_REGEX = /\w+, (\d+)\. (\w+) (\d+), (\d\d):(\d\d)/; +const MONTHS: { [m: string]: number } = { + Januar: 1, + Februar: 2, + März: 3, + April: 4, + Mai: 5, + Juni: 6, + Juli: 7, + August: 8, + September: 9, + Oktober: 9, + November: 10, + Dezember: 11, +}; + +export function parseMoodleDate(s: string) { + const match = MOODLE_DATE_REGEX.exec(s); + if (!match) { + return new Date(-1); + } + + const month = MONTHS[match[2]]; + return new Date(Number(match[3]), month, Number(match[1]), Number(match[4]), Number(match[4])); +} -- cgit v1.2.3