[Funktion] Zeitverschiebung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] Zeitverschiebung

    Hi zusammen..,

    ich bin neu hier, und erstmal nette grüsse an alle!
    ich hab auch gleich mal eine frage, und hoffe ihr nehmt mir so eine für euch sicherlich einfache frage nicht übel! ich bin zwar kein anfänger mehr in php, aber auch noch lange kein profi.

    bin dabei ein portal zu progen, worauf international zugegriffen wird, aber ich eine allgemeine feste zeit brauch (GMT) für zeitliche absprachen, und hab einige logische schwierigkeiten mit den unterschiedlich zeitzonen.

    ich weiss, das man mit date die aktuelle zeit erhält, und mit gmdate die Greenwich Mean Time rausholt. aber woher holen die die zeiten? vom lokalen rechner (währe ja manipulierbar), vom server wo die website liegt, oder vom server wo sich der user ins internet einwählt?

    mir geht es nur darum, das einer aus russland die zeitdifferenz zur GMT angezeigt bekommt, und einer aus portugal, sowie die zeitliche differenz zueinander. sommer und winterzeit sollen auch berücksichtigt werden. wie gesagt, das sind logische schwierigkeiten meinerseits.

    ich hoffe ihr könnt meine einfache frage nachvollziehen, da ich über suche etc. nicht wirklich fündig geworden bin das meine fragen beantworten.

    ich sag dennoch danke für die zeit die ihr euch hierfür schonmal genommen habt.

    liebe grüsse
    Melanie

  • #2
    Ist eigentlich recht einfach denke ich mal...
    Du benutzt einfach die Funktion setlocale um die Zeit in Russland oder was weiß ich vorher zu holen und dann bildest du davon denn timestamp und nimmst denn timestamp von GMT und bildest differenz der beiden....

    MFG

    Kommentar


    • #3
      php holt sich die zeit vom server auf dem es installiert ist.
      Gruß
      Uzu

      private Homepage

      Kommentar


      • #4
        Die Lösung ist einfach: der User muss in seinem Profile selbst einstellen, wasfür Zeitzone er haben will, anhand dessen kannst du dann reagieren. Alles andere ist unfug. Schau doch mal in dein Profileinstellung hier in Forum rein.

        Kommentar


        • #5
          danke schonmal!
          das ist der code, den ich bis dato hab.


          PHP-Code:
          $gmt=gmmktime(gmdate("G"), gmdate("i"), gmdate("s"), gmdate("m"), gmdate("d"), gmdate("Y"));
          $de_time=gmmktime(gmdate("G")+1gmdate("i"), gmdate("s"), gmdate("m"), gmdate("d"), gmdate("Y"));

          $offset=date("Z");
          $usertime=$gmt+$offset;
          $summertime=date("I",$de_time);

          echo 
          "<br />Offset= ".$offset."<br />";
          echo 
          "<br />SOMMERZEIT: ".$summertime."<br />";
          $portaltime=$gmt+(3600+($summertime*3600));

          echo 
          "<br>portaltime ".gmdate("d.m Y H:i",$portaltime);
          echo 
          "<br>gmt ".gmdate("d.m Y H:i",$gmt);
          echo 
          "<br>usertime ".gmdate("d.m Y H:i",$usertime); 
          wenn jetzt also der user, wie du schriebst, in seinem profil seine zeitzone auswählt, und ich dann in die DB einen zeitunterscheid zur gmt von 2stunden speicher, wie wird das denn gehandhabt, wen der user in einer zeitzone lebt, die keine sommerzeit hat. das portal ist in deutschland und diese zeit soll als standardzeit gelten. wird in DE wieder auf winterzeit umgestellt, stimmt der zeitunterschied doch garnicht mehr. ich hoffe das der knoten in meinem köpfchen langsam mal platz!

          liebe grüsse
          melanie

          Kommentar


          • #6
            Nein, du speicherst immer die Zeit, die defaultmäßig auf dem Server vorherscht. Im Userprofil hast du seine Zeitzone als eine Zahl zwischen 12 bis -12. Bei der Ausgabe der Zeit aus der DB rechnest du einfach um. That's it.

            Bsp: Server hat MEZ = GMT + 1; User ist in NY und hat entsprechend -5 in seinem Profil, dann muss du bei der Ausgabe eben DB-Zeit minus 6 Stunden ausgeben.

            Was Sommer- und Winterzeit angeht, du weisst aber in welche Gegend keinen Zeitunterschied zwischen Sommer und Winter gibt, dann reagiere entsprechen, denn du weisst ja auch, wann die Umstellung beim Server erfolgt.
            Zuletzt geändert von asp2php; 23.06.2008, 10:42.

            Kommentar


            • #7
              Die Daten der Zeitumstellung (falls überhaupt eine stattfindet) pro Zeitzone
              PHP-Code:
              $timezone = new DateTimeZone("CET");
              foreach(
              $timezone->getTransitions() as $wert){
                echo 
              $wert;

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                hey, supper!!

                danke euch allen für eure hilfe!

                die denkanstöße haben bei mir gefruchtet, und haben mir sicherlich mehr gebracht, als wenn ihr mir fertigen code vor die füsse geworfen hättet!

                DANKE!

                liebe grüsse
                melanie

                Kommentar

                Lädt...
                X