added UTC and timezone display
This commit is contained in:
70
index.html
70
index.html
@@ -39,6 +39,8 @@
|
||||
<h2 id="personal-time">Loading...</h2>
|
||||
<div id="longitude"></div>
|
||||
<div id="offset"></div>
|
||||
<div id="utc-time"></div>
|
||||
<div id="closest-timezone"></div>
|
||||
<div class="status" id="status">Fetching location...</div>
|
||||
</div>
|
||||
<script>
|
||||
@@ -48,6 +50,8 @@
|
||||
const longitudeElement = document.getElementById('longitude');
|
||||
const offsetElement = document.getElementById('offset');
|
||||
const personalTimeElement = document.getElementById('personal-time');
|
||||
const utcTimeElement = document.getElementById('utc-time');
|
||||
const closestTimezoneElement = document.getElementById('closest-timezone');
|
||||
|
||||
if (!navigator.geolocation) {
|
||||
statusElement.textContent = 'Geolocation is not supported by your browser.';
|
||||
@@ -62,15 +66,71 @@
|
||||
offsetElement.textContent = `Offset: ${offset.toFixed(2)} hours`;
|
||||
statusElement.textContent = '';
|
||||
|
||||
// Timezone data with approximate longitude centers
|
||||
const timezones = [
|
||||
{ name: 'UTC', offset: 0, longitude: 0 },
|
||||
{ name: 'UTC+1', offset: 1, longitude: 15 },
|
||||
{ name: 'UTC+2', offset: 2, longitude: 30 },
|
||||
{ name: 'UTC+3', offset: 3, longitude: 45 },
|
||||
{ name: 'UTC+4', offset: 4, longitude: 60 },
|
||||
{ name: 'UTC+5', offset: 5, longitude: 75 },
|
||||
{ name: 'UTC+5:30', offset: 5.5, longitude: 82.5 },
|
||||
{ name: 'UTC+6', offset: 6, longitude: 90 },
|
||||
{ name: 'UTC+7', offset: 7, longitude: 105 },
|
||||
{ name: 'UTC+8', offset: 8, longitude: 120 },
|
||||
{ name: 'UTC+9', offset: 9, longitude: 135 },
|
||||
{ name: 'UTC+9:30', offset: 9.5, longitude: 142.5 },
|
||||
{ name: 'UTC+10', offset: 10, longitude: 150 },
|
||||
{ name: 'UTC+11', offset: 11, longitude: 165 },
|
||||
{ name: 'UTC+12', offset: 12, longitude: 180 },
|
||||
{ name: 'UTC-1', offset: -1, longitude: -15 },
|
||||
{ name: 'UTC-2', offset: -2, longitude: -30 },
|
||||
{ name: 'UTC-3', offset: -3, longitude: -45 },
|
||||
{ name: 'UTC-4', offset: -4, longitude: -60 },
|
||||
{ name: 'UTC-5', offset: -5, longitude: -75 },
|
||||
{ name: 'UTC-6', offset: -6, longitude: -90 },
|
||||
{ name: 'UTC-7', offset: -7, longitude: -105 },
|
||||
{ name: 'UTC-8', offset: -8, longitude: -120 },
|
||||
{ name: 'UTC-9', offset: -9, longitude: -135 },
|
||||
{ name: 'UTC-10', offset: -10, longitude: -150 },
|
||||
{ name: 'UTC-11', offset: -11, longitude: -165 },
|
||||
{ name: 'UTC-12', offset: -12, longitude: -180 }
|
||||
];
|
||||
|
||||
function findClosestTimezone(longitude) {
|
||||
let closest = timezones[0];
|
||||
let minDistance = Math.abs(longitude - closest.longitude);
|
||||
|
||||
for (const tz of timezones) {
|
||||
const distance = Math.abs(longitude - tz.longitude);
|
||||
if (distance < minDistance) {
|
||||
minDistance = distance;
|
||||
closest = tz;
|
||||
}
|
||||
}
|
||||
return closest;
|
||||
}
|
||||
|
||||
const closestTimezone = findClosestTimezone(longitude);
|
||||
closestTimezoneElement.textContent = `Closest timezone: ${closestTimezone.name}`;
|
||||
|
||||
function updateTime() {
|
||||
const now = new Date();
|
||||
// Calculate personal time based on longitude offset from UTC
|
||||
// Each 15 degrees of longitude represents roughly 1 hour
|
||||
const personalTime = new Date(now.getTime() + offset * 3600000);
|
||||
personalTimeElement.textContent = personalTime.toLocaleTimeString('en-US', {
|
||||
|
||||
// UTC time
|
||||
const utcTime = new Date(now.getTime() + now.getTimezoneOffset() * 60000);
|
||||
utcTimeElement.textContent = `UTC time: ${utcTime.toLocaleTimeString('en-US', {
|
||||
hour12: false,
|
||||
timeZone: 'UTC'
|
||||
});
|
||||
})}`;
|
||||
|
||||
// Personal time based on longitude offset from UTC
|
||||
// Each 15 degrees of longitude represents roughly 1 hour
|
||||
const personalTime = new Date(now.getTime() + offset * 3600000);
|
||||
personalTimeElement.textContent = `Personal time: ${personalTime.toLocaleTimeString(
|
||||
'en-US',
|
||||
{ hour12: false, timeZone: 'UTC' }
|
||||
)}`;
|
||||
}
|
||||
|
||||
updateTime();
|
||||
|
||||
Reference in New Issue
Block a user