71 lines
1.8 KiB
JavaScript
71 lines
1.8 KiB
JavaScript
function parseEventTimes() {
|
|
const dateformatter = Intl.DateTimeFormat(
|
|
"en-CA",
|
|
{
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
timeZoneName: 'short',
|
|
hour12: false
|
|
});
|
|
|
|
const eventtimes = document.getElementsByClassName("eventtime");
|
|
for(eventtime of eventtimes) {
|
|
const eventdate = eventtime.getAttribute("data-event-date")
|
|
if(eventdate) {
|
|
let parts = eventdate.split("-");
|
|
if(parts.length !== 3)
|
|
continue;
|
|
|
|
const year = parseInt(parts[0], 10);
|
|
const month = parseInt(parts[1], 10);
|
|
const day = parseInt(parts[2], 10);
|
|
|
|
parts = eventtime.innerText.split("UTC");
|
|
if(parts.length < 2)
|
|
continue;
|
|
|
|
parts = parts[0].split(":")
|
|
if(parts.length !== 2)
|
|
continue;
|
|
|
|
const hour = parseInt(parts[0], 10);
|
|
const minute = parseInt(parts[1], 10);
|
|
|
|
let date = Date.UTC(year, month, day, hour, minute);
|
|
date = new Date(date);
|
|
date = dateformatter.format(date);
|
|
eventtime.innerHTML += " (" + date + ")";
|
|
}
|
|
}
|
|
}
|
|
|
|
function parseEventDates() {
|
|
const dateformatter = Intl.DateTimeFormat(
|
|
"en-CA",
|
|
{
|
|
weekday: 'short',
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
timeZoneName: 'short',
|
|
hour12: false
|
|
});
|
|
|
|
const eventdates = document.getElementsByClassName("eventdate");
|
|
for(eventdate of eventdates) {
|
|
const date_attribute = eventdate.getAttribute("data-event-datetime")
|
|
if(date_attribute) {
|
|
let date = Date.parse(date_attribute.replace("UTC", "Z"))
|
|
if(isNaN(date))
|
|
continue;
|
|
|
|
date = new Date(date);
|
|
date = dateformatter.format(date);
|
|
eventdate.innerHTML += " (" + date + ")";
|
|
}
|
|
}}
|
|
|
|
document.addEventListener("DOMContentLoaded", (event) => {
|
|
parseEventTimes();
|
|
parseEventDates();
|
|
});
|