Sirko: serverunabhängige Zeit(-anzeige)

Hallo allerseits,

ich plage mich gerade mit einer vietnamesischen Zeitanzeige herum und glaube, ich stehe bei einer generellen Sache irgendwie auf dem Schlauch, denn ich bin nun auch mit der Archiv-Suche leider nicht mehr weitergekommen und habe schon jede Menge ausprobiert...

Ich habe schon eine Lösung, welche die Vietnam-Zeit anzeigt, indem der Unterschied zwischen lokaler Rechnerzeit und GMT ermittelt wird und dann 7 Stunden draufgezählt werden - soweit, so gut...

Nun wollte ich das Script automatisieren, da in Vietnam keine Sommer-/Winterzeitumstellung erfolgt, sonst müsste ich es 2x im Jahr manuell ändern, da ja nur im Sommer 7 Stunden auf die GMT addiert werden müssen - im Winter sind es dann 8 Stunden.

Dabei bin ich auf den Gedanken gekommen, einfach mit getUTCHours() zu arbeiten, da ja hier die Sommerzeit nicht berücksichtigt wird...
somit könnte ich sommers wie winters die gleiche Anzahl dazuaddieren
(dachte ich)...

Da JS aber clientseitig ausgeführt wird, klappt das wohl nicht...oder?

Deshalb meine Frage:
WIE ermittelt getUTCHours() den Unterschied zwischen GMT und meiner Lokalzeit bzw.: meine Lokalzeit kann ja ausgelesen werden, aber WOHER bekommt getUTCHours() die GMT-Zeit, bevor es die Differenz berechnet?

Oder gibt es eine andere Möglichkeit, eine clientunabhängige Zeit abzufragen - vielleicht bei einem Zeitserver oder so???

Gruß
Sirko

  1. Hallo,

    Nun wollte ich das Script automatisieren, da in Vietnam keine Sommer-/Winterzeitumstellung erfolgt, sonst müsste ich es 2x im Jahr manuell ändern, da ja nur im Sommer 7 Stunden auf die GMT addiert werden müssen - im Winter sind es dann 8 Stunden.

    Kannst Du nicht anhand des Datums berechnen, wann Sommer- und wann Winterzeit ist und dann davon abhängig 7 oder 8 addieren. Wenn ich mich nicht täusche hat die EU den Wechsel von SZ -> WZ und umgekehrt statisch festgelegt.

    Heiner

    1. Danke Heiner!

      Kannst Du nicht anhand des Datums berechnen, wann Sommer- und
      wann Winterzeit ist und dann davon abhängig 7 oder 8 addieren.

      Da wird mir wohl nix anderes übrigbleiben

      Wenn ich mich nicht täusche hat die EU den Wechsel von SZ -> WZ
      und umgekehrt statisch festgelegt.

      nee, leider nicht ganz so "statisch", es ist nämlich der letzte Sonntag im März (Anfang) und der letzte Sonntag im Oktober (Ende), also vom Datum her leider ziemlich "dynamisch"...grübel...

      Ich habe nun schon hier und im Web ein paar Stunden gelesen und wieder viel probiert... leider scheint das noch ziemlich über meinen Möglichkeiten zu liegen...

      Ich habe auch in einem Script eine Stelle entdeckt, die sich wohl ziemlich genau mit diesem Problem beschäftigt, aber ich raffe einfach nicht, an welcher Stelle der jeweilige SONNTAG ermittelt wird - kann mir da jemand behilflich sein (bitte)?

      // -------------------------------------------------
      // Return string with date, time, timezone and
      // daylight saving tag in Germany.
      // Parameter "now": date object
      //
      // DST lasts from "last sunday in march"
      // till "last sunday in october".
      // -------------------------------------------------
      function date2GermanyString(now) {

      // -- set variables
        gmttime=now.getTime();
        GMToffset=-1*60;    // timezone offset in minutes (normal winter time)
        time=gmttime-GMToffset*60*1000;
        DST="";

      // -- get year and timestr
        mydate=new Date();
        mydate.setTime(time);
        timestr=mydate.toGMTString();  // e.g. "Sat, 05 Jan 2002 20:25:06 GMT"
        timearr=timestr.split(" ");
        year=timearr[3];

      // -- get begin of daylight saving time
        beginDST=Date.parse("31 Mar "+year+" 02:00:00 GMT");
        weekday=weekdayOfTime(beginDST);
        beginDST=beginDST-weekday*24*60*60*1000;

      // -- get end of daylight saving time
        endDST=Date.parse("31 Oct "+year+" 02:00:00 GMT");
        weekday=weekdayOfTime(endDST);
        endDST=endDST-weekday*24*60*60*1000;

      // -- compare with daylight saving times
        if (time>beginDST && time<=endDST) {
          DST="DST";
          GMToffset=GMToffset-60;  // shift one hour
          time=time+60*60*1000;
          mydate.setTime(time);
          timestr=mydate.toGMTString();
        }

      return timestr+minutes2hhmm(GMToffset)+" "+DST;
      }
      // -------------------------------------------------

      ... ich sehe zwar weekday=weekdayOfTime(beginDST);, aber wo bezieht sich das denn auf den Sonntag?

      Viele Grüße
      Sirko