Zeit +1 zählen

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

  • Zeit +1 zählen

    Hallo, ich habe ein Problem welches ich nicht gelöst bekommen.
    Ich bekommevon einem Fremdanbieter eine Zeit zur Verfügung gestellt.
    Diese bekomme ich so:

    22.01.2007 01:15 GMT

    jetzt muß ich jedoch bei der Uhrzeit eine Sunde aufrechnen so das

    22.01.2007 02:15 GMT+1

    rauskommt.
    Das +1 bekomme ich mit str_replace hin aber die Zeit klappt einfach nicht.

    Kann mit bitte jemand ne Lösung posten?
    Wäre unendlich dankbar

  • #2
    Kann mal bitte jemand selber im Handbuch gucken?

    strtotime()
    dann
    time()

    Danke.
    Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

    Kommentar


    • #3
      Hi!

      Ich würde einfach nur time() der Variable $timestamp zuweisen, und dann 1 Stunde (60 Sekunden * 60 = 1 Stunde) + 3600 rechnen. Sieht dann so aus:
      PHP-Code:
      $timestamp time();
      $gmt1 $timestamp 3600
      Natürlich geht das auch noch einfacher, aber so isses einfacher nachvollziehbar. (Oder auch nicht..)

      mfg nOe
      "I am what I am and I do what I can..."
      Meine HP -- Mein GPG-Key
      Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)

      Kommentar


      • #4
        Original geschrieben von nOe
        60 Sekunden * 60 = 1 Stunde
        Nur im Idealfall ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Also zuerst nimmst du mal dein Datum auseinander (in Zeit und Datum trennen). Dann übergibst du die Datumswerte im englischen Format an strtotime() und lässt die Fkt gleich eine Stunde dazu addieren.
          Dies ist besser als einfach stur 60 min hinzuzurechnen, weil du damit Probleme mit Sommer-Winterzeit ungehen kannst.
          PHP-Code:
          $date '22.01.2007 01:15 GMT';
          $date_arr explode(' ',$date);
          $datum explode('.',$date_arr[0]);
          $zeit $date_arr[1];
          $stamp strtotime($datum[2].'-'.$datum[1].'-'.$datum[0].' '.$zeit.' + 1 hour');
          //das sollte dir das gewünschte Datum ausgeben
          echo date('j.n.Y G:i:s',$stamp); 
          Gruss

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

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

          Kommentar


          • #6
            [klugscheiß]
            2007-01-22 ist das amerikanische Datumsformat, nicht das englische
            [klugscheiß]
            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              Dann ich jetzt auch noch
              [klugscheiss]
              diese Schreibweise entspricht sowohl der englischen als auch der amerikanischen Schreibweise und ist in ISO8601 auch für den deutschen Sprachraum verbindlich. Link
              [/klugscheiss]

              Gruss

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

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

              Kommentar


              • #8
                Original geschrieben von jahlives
                Also zuerst nimmst du mal dein Datum auseinander (in Zeit und Datum trennen). Dann übergibst du die Datumswerte im englischen Format an strtotime() und lässt die Fkt gleich eine Stunde dazu addieren.
                Dies ist besser als einfach stur 60 min hinzuzurechnen, weil du damit Probleme mit Sommer-Winterzeit ungehen kannst.
                PHP-Code:
                $date '22.01.2007 01:15 GMT';
                $date_arr explode(' ',$date);
                $datum explode('.',$date_arr[0]);
                $zeit $date_arr[1];
                $stamp strtotime($datum[2].'-'.$datum[1].'-'.$datum[0].' '.$zeit.' + 1 hour');
                //das sollte dir das gewünschte Datum ausgeben
                echo date('j.n.Y G:i:s',$stamp); 
                Gruss

                tobi
                Danke Dir aber da bekomme ich 1979 01:00:00 ausgegeben.
                Habe ein wenig rumvesucht aber ohne Erfolg.
                Im Manual steht das GMT bei der Uhrzeit drinne sein muß und die Sekunden bei Zeit vielleicht gehts deswegen nicht.
                Bekomme es ja aber nur so 22.01.2007 01:15 GMT vorgelegt.

                Kommentar


                • #9
                  Original geschrieben von Michael8576
                  Danke Dir aber da bekomme ich 1979 01:00:00 ausgegeben.
                  Nö, wenn ich den Code 1:1 übernehme, kommt da "22.1.2007 2:15:15" bei raus.
                  Im Manual steht das GMT bei der Uhrzeit drinne sein muß und die Sekunden bei Zeit vielleicht gehts deswegen nicht.
                  Wo genau soll das stehen, und wie klingt es, wenn du es wörtlich zitierst, anstatt es in eigenem Kauderwelsch wiederzugeben?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Sorry für mein Kauderwelch
                    Also ich bekomme leider nur 1970 01:00:00 ausgegeben.

                    Anmerkung: Der gültige Bereich eines Timestamp liegt typischerweise zwischen Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT. (Das sind die Datumsangaben, die dem minimalen und maximalen Wert eines vorzeichenbehafteten 32-bit Integer entsprechen.) Zusätzlich unterstützen nicht alle Plattformen negative Werte eines Timestamps, deshalb könnte der Wertebereich eines Datums durch den Beginn der Unix Epoche begrenzt sein. Das bedeutet, dass z.B. Zeitangaben vor dem Jan 1, 1970 auf Windowssystemen, einigen Linuxdisrtibutionen und einigen anderen Betriebssytemen nicht funktionieren.
                    deswegen dachte ich es muß mit Sekunden etc. sein.
                    Kann es an meiner PHP Version liegen? Nutze 5.

                    Kommentar


                    • #11
                      Kann es an meiner PHP Version liegen? Nutze 5.
                      Sollte imho nicht daran liegen. Wenn du jetzt den Code genau so wie er dasteht kopierst und es nicht funzt, dann hätte ich gerne einige Angaben von dir:
                      1. Ausgabe von var_dump($date_arr);
                      2. Ausgabe von var_dump($datum);
                      3. als erste Zeile deines Codes noch error_reporting(E_ALL); setzen

                      Dann schau'n wir mal weiter

                      Gruss

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

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

                      Kommentar


                      • #12
                        Mir brate einer einen Storch.
                        Nochmal kopiert und eingefügt und nun geht es.
                        Habe es mir von der Ausgabe angepaßt und bedanke mich recht herzlich für die Hilfe.

                        Kommentar


                        • #13
                          Mir brate einer einen Storch.
                          Ich hätte gern die Keule...

                          Gruss

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

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

                          Kommentar

                          Lädt...
                          X