docbrown/app/assets/javascripts/initializers/initializeTimeFixer.js

71 lines
1.7 KiB
JavaScript

function initializeTimeFixer() {
var utcTime = document.getElementsByClassName('utc-time');
var utcDate = document.getElementsByClassName('utc-date');
var utc = document.getElementsByClassName('utc');
if (!utc) {
return;
}
function convertUtcTime(utcTime) {
var time = new Date(utcTime);
var options = {
hour: 'numeric',
minute: 'numeric',
timeZoneName: 'short'
};
time = new Intl.DateTimeFormat('en-US', options).format(time);
return time;
}
function updateLocalTime(times) {
var localTime;
for (var i = 0; i < times.length; i++) {
localTime = convertUtcTime(times[i].dataset.datetime);
times[i].innerHTML = localTime;
}
}
function convertUtcDate(utcDate) {
var date = new Date(utcDate);
var options = {
month: 'short',
day: 'numeric',
};
date = new Intl.DateTimeFormat('en-US', options).format(date);
return date;
}
function updateLocalDate(dates) {
var localDate;
for (var i = 0; i < dates.length; i++) {
localDate = convertUtcDate(dates[i].dataset.datetime);
dates[i].innerHTML = localDate;
}
}
function convertCalEvent(utc) {
var date = new Date(utc);
var options = {
weekday: 'long',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
};
date = new Intl.DateTimeFormat('en-US', options).format(date);
return date;
}
function updateCalendarTime(utcTimes) {
var calTime;
for (var i = 0; i < utcTimes.length; i++) {
calTime = convertCalEvent(utcTimes[i].innerHTML);
utcTimes[i].innerHTML = calTime;
}
}
updateLocalTime(utcTime);
updateLocalDate(utcDate);
updateCalendarTime(utc);
}