Michael27: Date in GMT-Zeitzone

Hallo,
ich erstelle mit Javascript ein Datumobjekt aus einem iso-Datum
var mydate = new Date("2010-12-02");
Leider wird dieses immer mit der aktuellen Zeitzone des Clients erstellt. Das bedeutet, dass u.U. so etwas dabei heraus kommt:
Wed Dec 01 2010 19:00:00 GMT-0500 (Eastern Normalzeit)
Da ich danach das Datum weiterverabeite und dabei nur Tag, Monat und Jahr benutze, kann es vorkommen, dass sich das ursprüngliche Datum um einen Tag verschiebt.
Jetzt meine Frage:
Wie kann ich das neue Datum mydate von Anfang an von der Client-Zeitzone entkoppeln, so dass ich in der GMT-Zeitzone +0000 arbeite.
toUTCString() bringt mich leider nicht weiter, da ich mydate als Datumobjekt weiterverarbeite. Ich bräuchte so etwas wie new UTCDate, aber das gibt's nicht, oder?
Vielen Dank im Voraus

  1. Hi,

    ich erstelle mit Javascript ein Datumobjekt aus einem iso-Datum
    var mydate = new Date("2010-12-02");
    Leider wird dieses immer mit der aktuellen Zeitzone des Clients erstellt.

    Logisch, auf dem läuft das JavaScript ja auch.

    Wie kann ich das neue Datum mydate von Anfang an von der Client-Zeitzone entkoppeln, so dass ich in der GMT-Zeitzone +0000 arbeite.

    In dem du diese Zeitzone beim Erzeugen des Datums mit angibst ...?

    toUTCString() bringt mich leider nicht weiter, da ich mydate als Datumobjekt weiterverarbeite. Ich bräuchte so etwas wie new UTCDate, aber das gibt's nicht, oder?

    Es gibt explizite Methoden zum setzen einzelner Bestandteile des Datums in UTC.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Klar kann man das so machen:
      new Date(Date.UTC(2008, 5, 6))
      allerdings suche ich nach einer Möglichkeit mit iso-Format als Input...

      1. Hi,

        Klar kann man das so machen:
        new Date(Date.UTC(2008, 5, 6))
        allerdings suche ich nach einer Möglichkeit mit iso-Format als Input...

        new Date("2010-12-02 00:00:00 +0000");

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. new Date("2010-12-02 00:00:00 +0000");

          Das gibt einen Javascript-Fehler: Invalid Date

          1. Hi,

            new Date("2010-12-02 00:00:00 +0000");

            Das gibt einen Javascript-Fehler: Invalid Date

            Hatte es nur im Opera getestet, und der akzeptiert das.

            Firefox macht aus new Date("2010-12-02"); aber auch wirklich den 2. Dezember 2010, 0 Uhr - lediglich die *Darstellung* wird in Client-Zeit ausgegeben.
            Was genau damit jetzt also dein Problem ist, ist mir noch nicht klar.

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. Hi,

              Firefox macht aus new Date("2010-12-02"); aber auch wirklich den 2. Dezember 2010, 0 Uhr - lediglich die *Darstellung* wird in Client-Zeit ausgegeben.

              OK, das macht Opera wiederum anders.

              Wenn du Probleme mit Browser-Inkompabilitäten vermeiden willst, dann schreibst du dir am besten deine eigene kleine Methode, die deinen ISO-Datumsstring zerlegt, und damit dann mit Date.UTC dein Wunschdatum erzeugt.
              Idealerweise erweiterst du einfach das Date-Objekt (prototypisch) um diese Methode.

              MfG ChrisB

              --
              RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
              1. Idealerweise erweiterst du einfach das Date-Objekt (prototypisch) um diese Methode.

                Ja, hatte auch schon dies hier gefunden:
                http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc
                Dachte allerdings, dass das auch einfacher ginge...

            2. Naja, die Darstellung ist ja genau das Problem.
              Wenn ich den 02.12.2010 als Datum ausgebe, soll auch überall der 02.12.2010 stehen, nicht nur in den Zeitzonen, die zufällig östlich der GMT-Zone liegen.
              Daher will ich, dass Javascript mit die GMT-Zeit ausgibt/darstellt und nicht die lokale Zeit.
              Hoffe, ich konnte das damit klären...
              Schönen Gruß

              1. @@Michael27:

                nuqneH

                Daher will ich, dass Javascript mit die GMT-Zeit ausgibt/darstellt und nicht die lokale Zeit.

                Und welche Frage lässt http://de.selfhtml.org/javascript/objekte/date.htm da offen?

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
                1. :) Danke für den Link - den kannte ich noch gar nicht /s

                  Ich hab's jetzt so gelöst:

                    
                  var a = new Date("2010-12-02");  
                  var b = (a.getTime()+a.getTimezoneOffset()*60*1000);  
                  var mydate = new Date();		  
                  mydate.setTime(b);
                  

                  Schön ist es nicht, aber funktioniert...

                  1. Hi,

                    Ich hab's jetzt so gelöst:

                    var a = new Date("2010-12-02");
                    var b = (a.getTime()+a.getTimezoneOffset()601000);
                    var mydate = new Date();
                    mydate.setTime(b);

                    
                    >   
                    > Schön ist es nicht, aber funktioniert...  
                      
                    Das liefert mir (wenn ich es um alert(mydate) ergänze) im Opera  
                    "Wed Dec 01 2010 23:00:00 GMT+0100", und im Firefox  
                    "Thu Dec 02 2010 00:00:00 GMT+0100" ...  
                      
                    MfG ChrisB  
                      
                    
                    -- 
                    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?