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'},
parts?.tz && (options.timeZone = parts.tz); date = (parts ? new Date(
return (parts ? new Date(
parseInt(parts.year, 10), parseInt(parts.year, 10),
parseInt(parts.month, 10) - 1, parseInt(parts.month, 10) - 1,
parseInt(parts.day, 10), parseInt(parts.day, 10),
parseInt(parts.hour, 10), parseInt(parts.hour, 10),
parseInt(parts.minute, 10), parseInt(parts.minute, 10),
parseInt(parts.second, 10) parseInt(parts.second, 10)
) : new Date(str)).format(options); ) : new Date(str));
parts?.tz && (options.timeZone = parts.tz);
try {
return date.format(options);
} catch (e) {
console.error(e);
if (options.timeZone) {
// TODO: handle messy vtimezones
// VTIMEZONEs[options.timeZone];
options.timeZone = undefined;
return date.format(options);
}
}
}; };
attachmentsPlace.after(Element.fromHTML(` attachmentsPlace.after(Element.fromHTML(`