onFOSS.org/assets/js/localtime.js

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();
});