Rätta mig om jag har fel, men läser inte JavaScript av Windows-klockan när den visar aktuell tid?
Om scriptet ska bli helt idiotsäkert är serverbaserad programmering att föredra.
8 svar · 321 visningar · startad av mattiasnordin
Går det med javascript att visa tid i olika tidzoner? Jag vet hur man visar den lokala klockans tid i ett inputfält men går det att visa den nuvarande tiden i tex New York. Rätt tid måste visas oberoende om du surfar från en dator i USA eller i sverige.
Rätta mig om jag har fel, men läser inte JavaScript av Windows-klockan när den visar aktuell tid?
Om scriptet ska bli helt idiotsäkert är serverbaserad programmering att föredra.
Som sagt så hämtas tiden från operativsystemet, men man vet alltid vad GMT är.
Så om du vet när olika ställen byter till sommartid och vad skillnaden är i tid mot GMT, går det att räkna ut.
Exempel: Washington DC ligger 5 timmar efter GMT och har sommartid mellan 1 april, kl: 02:00 och 28 oktober, kl: 03:00 (vilket ger 4 timmar efter GMT).
Kolla på nedanstående:
<script>
var nowYear=new Date().getFullYear();
var corrSE= ((new Date().getTime()-new Date("October 28, "+nowYear+" 03:00:00").getTime())<0 && (new Date("March 25, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? 2 : 1
var corrUS= ((new Date().getTime()-new Date("October 28, "+nowYear+" 02:00:00").getTime())<0 && (new Date("April 1, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? -4 : -5
var corrGB= ((new Date().getTime()-new Date("October 28, "+nowYear+" 03:00:00").getTime())<0 && (new Date("March 25, "+nowYear+" 01:00:00").getTime()-new Date().getTime())<0)? 1 : 0
var now= new Date().toGMTString();
var nowString=now.substring(0,now.length-3)
var GMTdate= new Date(nowString)
var SEdate= new Date(nowString)
var USdate= new Date(nowString)
var GBdate= new Date(nowString)
SEdate.setHours(SEdate.getHours()+corrSE)
USdate.setHours(USdate.getHours()+corrUS)
GBdate.setHours(GBdate.getHours()+corrGB)
document.write("Klockan är (timme) på resp ort:"+"<br>")
document.write("<b>GMT:</b> "+GMTdate.getHours()+"<br>")
document.write("<b>Stockholm:</b> "+SEdate.getHours()+"<br>")
document.write("<b>Washington DC:</b> "+USdate.getHours()+"<br>")
document.write("<b>London:</b> "+GBdate.getHours()+"<br>")
</script>
------------------
- J-O-H-N-S-E-N -
Man tackar för den fina lösningen. Jag läste mig till att det skulle gå men fick inte till syntaxen. Jag är självlärd på javascript så ibland blir det fel.
<kod>
var corrSE= ((new Date().getTime()-new Date("October 28, "+nowYear+" 03:00:00").getTime())<0 && (new Date("March 25, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? 2 : 1
var corrUS= ((new Date().getTime()-new Date("October 28, "+nowYear+" 02:00:00").getTime())<0 && (new Date("April 1, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? -4 : -5
var corrGB= ((new Date().getTime()-new Date("October 28, "+nowYear+" 03:00:00").getTime())<0 && (new Date("March 25, "+nowYear+" 01:00:00").getTime()-new Date().getTime())<0)? 1 : 0
</kod>
Jag är inte helt med på vad (x : -1, -5, 0) den sista nollan gör sist i koden? Vad styr du med denna?
Hur som helst tack för att du löste mitt problem. Jag är nästan med i matchen ;-)
Jag var lite otydlig. Hoppas att nedan fungerar bättre...
[kod]
var corrUS= ((new Date().getTime()-new Date("October 28, "+nowYear+" 02:00:00").getTime())<0 && (new Date("April 1, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? -4 : -5
[kod]
(Jag undrar över sista -5)
Vad sne jag blir! Varför kan man inte FÖRHANDSGRANSKA innan man klickar posta? Då slipper man alla nybörjarfel som tex jag genererar. -huuuummm-
var corrUS= ((new Date().getTime()-new Date("October 28, "+nowYear+" 02:00:00").getTime())<0 && (new Date("April 1, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? -4 : [red]-5[/red]
litet tips som är lite ot:
du kan alltid gå in och redigera ett inlägg i efterhand. det gör du genom att klicka på ikonen med pennan precis ovanför aktuellt inlägg.
mvh,
var variabel= ( värde<10 )? 2 : 1 är samma sak som att skriva:
var variabel
if( värde<10 ){variabel= 2}
else{variabel= 1}
Nedanstående betyder alltså:
corrSE är lika med 2, om vi befinner oss mellan 25/4 i år och 28/10 i år. Annars är corrSE lika med 1
(Dvs. förhållandet till GMT om vi har sommartid eller inte).
var corrSE= ((new Date().getTime()-new Date("October 28, "+nowYear+" 03:00:00").getTime())<0 && (new Date("March 25, "+nowYear+" 02:00:00").getTime()-new Date().getTime())<0)? 2 : 1
------------------
- J-O-H-N-S-E-N -