Alexander (HH): Zeitenumrechnung anhand der IP

Beitrag lesen

Moin Moin!

Wenn Du Dich darauf einläßt, Javascript vorauszusetzen, rechne komplett in UTC, und lasse eine JS-Funktion UTC auf dem Client in lokale Zeit umrechnen - und ggf. auch umgekehrt. Typischerweise stimmt die Zeitzoneneinstellung im Browser, und falls nicht, ist der jeweilige Anwender ohnehin Kummer gewohnt.

JS hat praktischerweise schon ein passendes Date-Objekt, dass Du mit den Millisekunden seit 1970-01-01 00:00:00.000 UTC initialisieren kannst, und aus dem Du diese Definition auch wieder rausholen kannst.

Als halbwegs fallback-taugliche Lösung könntest Du serverseitig die Zeiten in UTC als String ausgeben, zusätzlich "irgendwo" die Zeit als Timestamp ins Dokument schreiben und dann per JS den String durch durch die lokale Zeit ersetzen.

Ansatz:

  
<span class="utctimestamp" title="1294179332">2011-01-04 22:15:32 UTC</span>  

(Einzig häßlicher Seiteneffekt: das Mini-Popup mit der "wirren" Zahl. Für das span-Element gibt es offenbar kein "nutzloses" Attribut wie rel.)

Dazu etwas jQuery o.ä.:

  
// ungetestet  
$(document).ready(function() {  
    $('span.utctimestamp').each(function() {  
        var d=new Date(parseInt(this.title));  
        this.innerHTML=d.toLocaleString();  
        this.title='';  
    });  
});  

Date-Objekte kann man auch direkt mit einem passend formatierten String initialisieren, wenn Du den (und nur den) in das Dokument einbaust, kannst Du dir das extra-Attribut mit dem Timestamp sparen:

  
<span class="utctimestamp">Jan  4, 2011 22:15:32</span>  

Entsprechend kürzer ist das Javascript:

  
// ungetestet  
$(document).ready(function() {  
    $('span.utctimestamp').each(function() {  
        var d=new Date(this.innerHTML);  
        this.innerHTML=d.toLocaleString();  
    });  
});  

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".