date Problem (Zeitunterschied)

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

  • date Problem (Zeitunterschied)

    Hallo,

    ich habe hier ein Problem bei der Ausgabe von Zeit in meinem Script und habe echt keine Ahnung, wie ich das Ganze am besten lösen kann.
    Und zwar gebe ich per "echo date("H:i")" das Datum aus. Der Server steht allerdings in einem anderen Land und daher muss ich +7 Stunden dazu rechnen um die korrekte Zeit zu erhalten.
    Ich habe jetzt schon versucht "echo (date("H")+7)" auszugeben. Das hat mit einträgen, welche vor 17 Uhr gemacht wurden auch wunderbar geklappt. Jetzt habe ich allerdings News um 03:43 Uhr verfasst und plötzlich als Zeit 27:43
    Wäre super, wenn mir jemand eine Lösung für das Problem nennen könnte. Ich kenne mich noch nicht so wirklich mit PHP aus, daher bitte Idiotensicher
    Danke im Voraus!

  • #2
    strtotime()

    Kommentar


    • #3
      PHP-Code:
      date('H:m:s',strtotime('+7 hours'); 
      irgendwie so

      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


      • #4
        Hmm, jetzt habe ich bei allen Einträgen 15:05:44

        Kommentar


        • #5
          Dann stimmt der Zeitunterschied nicht resp du gehst von der falschen Zeitzone aus. +7h wäre wohl so irgendwo rund um Chicago resp CST-Time.
          Steht dein Server dort ?
          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


          • #6
            Lass dir auch mal die Zeitzone des Servers an. http://ch2.php.net/manual/de/functio...mezone-get.php

            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


            • #7
              Hmm ich habe mich wohl "leicht" vertan... Zeitzone ist GMT +3 (Sankt Petersburg).
              Aber selbst wenn die dazugerechneten Stunden nicht stimmen, dürfte er mir doch trotzdem nicht überall die gleiche Zeit anzeigen bei sämtlichen Einträgen?!
              Kann ich das ganze denn trotzdem per date('H:i') ausgeben? m und s steht doch für Monat und Sekunden? Bräuchte aber halt nur H:i

              Das mit "date_default_timezone_get" funktioniert erst ab PHP5 oder? Leider läuft auf dem Server PHP 4.3.9

              Kommentar


              • #8
                gmdate () verwenden die Abweichung hierzulande zu UTC auf Grund Sommer oder winterzeit festlegen und dann ausgeben...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  Natürlich kannst du H:i ausgeben. Habe mich vertan und gemeint, dass m für die Minuten stünde
                  Zur Frage nach der Zeit: Wie genau sehen den die Ausgangsdaten aus ? In welcher Form liegen die Daten vor ? Als Zeitstempel ? Oder als formatiertes Datum ?

                  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


                  • #10
                    Also die Daten sind in der Datenbank in Form von "1179146921" gespeichert. Ist dann also ein PHP-Timestamp oder?
                    Und dann gebe ich sie halt per "echo date ("H:i);" aus.
                    Hätte nicht gedacht, dass das ganze so kompliziert sein wird

                    Kommentar


                    • #11
                      Also wenn sie als timestamp in der DB stehen dann lies das Feld aus und
                      PHP-Code:
                      echo date('H:i',strtotime('+3 hours',$row['zeit'])); 
                      Wobei $row['zeit'] der Wert ist, den du aus der DB ausliest.

                      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


                      • #12
                        Super, das mit der Zeit passt jetzt!!
                        Jetzt ist jedoch das Problem, dass das Datum nicht stimmt.
                        Also ich habe heute einen Eintrag gemacht, jedoch ist das Datum jetzt von gestern. Liegt wohl daran, dass nur die Stunden zu der Zeit hinzugerechnet werden, jedoch nicht zum Datum
                        Also wenn ich morgen früh um 2:00 Uhr einen Eintrag schreiben würde, wäre das Datum noch immer 22.05.07 ab 3:00 Uhr würde das Datum dann wieder stimmen...so in der Art. Du weisst wohl was ich meine
                        Eine Idee wie man das lösen kann?

                        Kommentar


                        • #13
                          @Cmark
                          sag mal Dein Server schreibt einen timestamp in GMT+3 in deine DB
                          So jetzt möchtest Du aber localtime hier Deinen Usern anbieten.

                          Wenn Du jetzt deine Zeit ausliest und +3 Std rechnest dann bist Du bei GMT+6 gelandet

                          Weil wir leben in GMT+1 Zeitzone und Du solltest Sommer-/Winterzeit beachten

                          Also mal so am Rande solltest Du erstmal Deine Daten und Deine Logik!! prüfen bevor Du Dich blind ins Coding verirrst.
                          Beantworte nie Threads mit mehr als 15 followups...
                          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                          Kommentar


                          • #14
                            @topicstarter
                            Wenn dein Server in einer anderen Zeitzone östlich von Dir steht, dann musst du die Stunden abziehen Je weiter östlich desto später am gleichen Tag ist es. Um zurückzurechnen musst du die Stunden logischerweise abziehen. Addieren würdest du nur wenn der Server in einer Zeitzone westlich von dir stehen würde.

                            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


                            • #15
                              Also ich würde mir das ganze Rumgerechne ja sparen ... und es lieber mal mit set_locale versuchen.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X