Skip to content

Commit

Permalink
add timezone converter
Browse files Browse the repository at this point in the history
  • Loading branch information
dungscout96 committed May 14, 2021
1 parent 849815d commit d535dfe
Show file tree
Hide file tree
Showing 5 changed files with 129 additions and 66 deletions.
1 change: 1 addition & 0 deletions _includes/head.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,5 @@
{% seo %}

{% include head_custom.html %}

</head>
60 changes: 60 additions & 0 deletions _includes/head_custom.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<script>
function changeTimezone(toTimezone) {
var elems = document.getElementsByClassName("time");
for (let i = 0; i < elems.length; i++) {
const elem = elems[i];
let fromTimezone = elem.dataset.timezone;
if (fromTimezone === undefined) {
fromTimezone = 'PDT';
}
if (fromTimezone !== toTimezone) {
const timeText = elem.innerHTML;
const [validFromTimezone, utcOffset] = getValidTimezone(fromTimezone);
const dateTimeString = "2020-04-13T" + reformatTimeString(timeText) + utcOffset;
const [validToTimezone,offset] = getValidTimezone(toTimezone);
const converted = new Date(dateTimeString).toLocaleString("en-US", {timeZone: validToTimezone});
const newTimeArray = converted.split(" ")[1].split(":");
const newTime = newTimeArray[0] + ":" + newTimeArray[1] + converted.split(" ")[2];
elem.innerHTML = newTime;
elem.dataset.timezone = toTimezone;
}
}
}
function reformatTimeString(timeString) {
const re = /(\d?\d:\d\d)(am|pm|AM|PM)?/;
const parsed = timeString.match(re);
if (parsed) {
const hourMinArray = parsed[1].split(":");
let hour = parseInt(hourMinArray[0]);
if (parsed[2]) {
if (parsed[2].toLowerCase() === "pm") {
if (hour !== 12)
hour += 12;
}
}
const hourString = hour.toString().padStart(2, '0');
return hourString + ":" + hourMinArray[1];
}
else
return null
}
function getValidTimezone(timezone) {
let validTimezone = "";
let offset = "";
switch (timezone) {
case 'PDT':
validTimezone = "America/Los_Angeles";
offset = "-07:00";
break;
case 'EDT':
validTimezone = "America/New_York";
offset = "-04:00";
break;
case 'CEST':
validTimezone = "Europe/Amsterdam";
offset = "+02:00";
break;
}
return [validTimezone, offset];
}
</script>
1 change: 1 addition & 0 deletions _includes/timezone.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<span>1:00am</span>
3 changes: 0 additions & 3 deletions _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@

<html lang="{{ site.lang | default: 'en-US' }}">
{% include head.html %}
<script>
console.log("Using modified default.html");
</script>
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-link" viewBox="0 0 24 24">
Expand Down
Loading

0 comments on commit d535dfe

Please sign in to comment.