Vis klokken fra alle tidszoner
Jeg har oprettet en database i MySQL, hvor jeg har indtastet alle landekoder for alle lande. Cuba har landekode +53, Georgien har +72 osv.Jeg vil gerne have vist den nøjagtige tid vist på f.eks. Melbourne, Australien på en kollega’s profilside, hvilken har valgt en countrycode for Australien, samt et indtastet et australsk telefonnummer. Telefonnummeret bliver angivet af brugeren.
Men jeg vil også gerne have, at man ikke bare ukritisk ringer den pågældende kollega op onsdag den 14. klokken 15 dansk tid, hvor klokken er 01 torsdag den 15. i Melbourne, Australien (de er 10 timer foran os lige i øjeblikket).
Jeg har et javascript, som viser den nøjagtige tid i det land, som man befinder sig i. Jeg mener at have forstået det sådan, at det er ”ut”, som finder det præcise klokkeslet:
var tick;
function stop() {
clearTimeout(tick);
}
function clock() {
var ut=new Date();
var h,m,s;
var time=" ";
h=ut.getHours();
m=ut.getMinutes();
s=ut.getSeconds();
if(s<=9) s="0"+s;
if(m<=9) m="0"+m;
if(h<=9) h="0"+h;
time+=h+":"+m+":"+s;
document.getElementById('clock').innerHTML=time;
tick=setTimeout("clock()",1000);
}
Dette javascript viser timer, minutter og sekunder løbende, ganske som et almindeligt ur med sekundviser. Befinder jeg mig i Danmark, viser uret den danske tid. Befinder jeg mig på Cuba, viser det den cubanske tid osv. Det script er testet OK. Men det viser KUN tiden fra den tidszone, som du befinder dig i.
Min tanke er, om man kan benytte dette script til at vise lokal tid i Melbourne Australien, forstået på den måde, at man kan hente tiden ind v.hj.a. en værdi (GMT/UT/UTC …?) i MySQL? Og kan man i det hele taget blande en værdi fra MySQL ind i et javascript? Og ikke mindst, hvad med sommertid vs normaltid? Danmark og mange andre lande benytter DST (Daylight Savings Time, eller sommertid), mange andre gør ikke
Jeg ved ikke, om der findes nogen universelle værdier, som kan indsættes i -og hentes fra en MySQL database.
For at koge alt dette ned vil jeg gerne have vist dette på kollegaens profilside, baseret på brugerens landekode (jeg vil indtaste alle tidszoner i en relationsdatabase, som hører til den pågældende landekode, flere lande har flere tidszoner):
Klokken i Danmark er 15:01:14
Klokken i Melbourne, Australien er 01:01:14
Melbourne, Australien er 10 timer foran Danmark
eller
Klokken i Danmark er 15:01:14
Klokken i New York City, New York er 09:01:14
New York City, New York er 6 timer bagefter Danmark
- hvor der også er taget højde for sommertid/normaltid landene imellem