This commit is contained in:
the-djmaze 2024-05-27 14:22:34 +02:00
parent 047fd62ceb
commit dd39d18e2a

View file

@ -11,16 +11,27 @@
dateRegEx = /(TZID=(?<tz>[^:]+):)?(?<year>[0-9]{4})(?<month>[0-9]{2})(?<day>[0-9]{2})T(?<hour>[0-9]{2})(?<minute>[0-9]{2})(?<second>[0-9]{2})(?<utc>Z?)/, dateRegEx = /(TZID=(?<tz>[^:]+):)?(?<year>[0-9]{4})(?<month>[0-9]{2})(?<day>[0-9]{2})T(?<hour>[0-9]{2})(?<minute>[0-9]{2})(?<second>[0-9]{2})(?<utc>Z?)/,
parseDate = str => { parseDate = str => {
let parts = dateRegEx.exec(str)?.groups, let parts = dateRegEx.exec(str)?.groups,
options = {dateStyle: 'long', timeStyle: 'short'}; options = {dateStyle: 'long', timeStyle: 'short'},
date = (parts ? new Date(
parseInt(parts.year, 10),
parseInt(parts.month, 10) - 1,
parseInt(parts.day, 10),
parseInt(parts.hour, 10),
parseInt(parts.minute, 10),
parseInt(parts.second, 10)
) : new Date(str));
parts?.tz && (options.timeZone = parts.tz); parts?.tz && (options.timeZone = parts.tz);
return (parts ? new Date( try {
parseInt(parts.year, 10), return date.format(options);
parseInt(parts.month, 10) - 1, } catch (e) {
parseInt(parts.day, 10), console.error(e);
parseInt(parts.hour, 10), if (options.timeZone) {
parseInt(parts.minute, 10), // TODO: handle messy vtimezones
parseInt(parts.second, 10) // VTIMEZONEs[options.timeZone];
) : new Date(str)).format(options); options.timeZone = undefined;
return date.format(options);
}
}
}; };
attachmentsPlace.after(Element.fromHTML(` attachmentsPlace.after(Element.fromHTML(`