Karsten: timestamp + 7 Tage

Hey!
Wie kann ich einen Timestamp um 7 Tage verlängern?
Also time()+7 oder wie?
oder time()+168? Ne Woche hat ja 168 Stunden.

Grüße,
Karsten

  1. Hallo,

    $zukunft = strtotime("+7 day");

    Das lesen des PHP-Manuals würde ich in den gewissen klaren Vorteil versetzen....

    Gruß Rainer

    1. Hallo,

      $zukunft = strtotime("+7 day");

      Das lesen des PHP-Manuals würde ich in den gewissen klaren Vorteil versetzen....

      Gruß Rainer

      Stichwort Unixtime.
      Wenn Du erstmal weißt, was Unixtime ist und weißt, dass ein Tag 86400 Sekunden hat, wirds einfacher ;-)

      Grüße, Lothar

      1. Hi!

        Wenn Du erstmal weißt, was Unixtime ist und weißt, dass ein Tag 86400 Sekunden hat, wirds einfacher ;-)

        Diese Annahme ist falsch. Es gibt zwei Ausnahmen im Jahr, wenn man von hiesiger Lokalzeit ausgeht.

        Lo!

        1. Wenn Du erstmal weißt, was Unixtime ist und weißt, dass ein Tag 86400 Sekunden hat, wirds einfacher ;-)

          Diese Annahme ist falsch. Es gibt zwei Ausnahmen im Jahr, wenn man von hiesiger Lokalzeit ausgeht.

          Er will den timestamp um sieben Tage verlängern, nicht den timestamp von der gleichen Uhrzeit in sieben (Kalendertagen-)Tagen - hat er jedenfalls gesagt.
          Klugscheiß off

          1. Hi

            Er will den timestamp um sieben Tage verlängern, nicht den timestamp von der gleichen Uhrzeit in sieben (Kalendertagen-)Tagen - hat er jedenfalls gesagt.

            Am 25.10. dieses Jahres wird auf Winterzeit umgestellt.

            1256337000             ist der Timestamp vom 24.10.2009,  0.30 Uhr
            1256337000 + 7 * 86400 ist der Timestamp vom 30.10.2009, 23.30 Uhr

            Wenn man so eine ungeignete Methode nehmen will, dann MUSS man zumindest darauf achten, dass man nicht einfach ungesehen den aktuellen Timestamp als Input benutzen darf. Und immer erst eine ungefährliche Tageszeit des aktuellen Tages bestimmen zu müssen, disqualifiziert diese Methode gegenüber anderen wegen Unhandlichkeit.

            Klugscheiß [...]

            Nein, Hinweiß ;-) Und zwar ein wertvoller, den dedlfix hier gegeben hat.

            Viele Grüße,
            der Bademeister

            1. Hallo,

              Er will den timestamp um sieben Tage verlängern, nicht den timestamp von der gleichen Uhrzeit in sieben (Kalendertagen-)Tagen - hat er jedenfalls gesagt.
              Am 25.10. dieses Jahres wird auf Winterzeit umgestellt.
              1256337000             ist der Timestamp vom 24.10.2009,  0.30 Uhr
              1256337000 + 7 * 86400 ist der Timestamp vom 30.10.2009, 23.30 Uhr

              die unterschiedliche Uhrzeit, auch das Datum, das für sich betrachtet einen Zeitabstand von weniger als einer Woche suggeriert, ändern aber nichts daran, dass die beiden Zeitpunkte genau eine Woche, also 7*24 Stunden auseinanderliegen.
              Dass wir so dämlich sind, unsere sonst so kontinuierliche Zeitrechnung durch künstliche, sinnlose Zäsuren zu durchbrechen, ändert den Zeitablauf an sich nicht.

              Wenn du dagegen die Zeitpunkte 24.10.2009, 21:00 Uhr und 31.10.2008, 21:00 Uhr nehmen würdest, wäre der Zeitabstand *nicht* exakt eine Woche, auch wenn es anhand der Zeitangaben auf den ersten Blick so aussieht.

              Ciao,
               Martin

              --
              Datenbanken speichern keine User.
              Das liegt daran, daß Datenbanken mit der Lebensmittelversorgung für gespeicherte biologische Lebensformen derzeit noch Probleme haben.
                (Christoph Schnauß)
              1. Hi!

                Dass wir so dämlich sind, unsere sonst so kontinuierliche Zeitrechnung durch künstliche, sinnlose Zäsuren zu durchbrechen, ändert den Zeitablauf an sich nicht.

                So kontinuierlich ist die Zeitrechnung[*] (ohne die Sommerzeitproblematik) nun auch wieder nicht. Da gibt es unterschiedlich lange Monate und gelegentlich einen Tag mehr im Jahr. Und Schaltsekunden gibt es wegen der etwas eiernden Erde auch gelegentlich. Allerdings werden die Schaltsekunden vom Unix-Timestamp ignoriert.

                Die Idee mit der Sekundenrechnerei, auch wenn du UTC als Basis nimmst, ist nicht immer hilfreich. Mit strtotime() erschlägt man mehr Probleme auf einfachere Weise. Hinzu kommt, dass die näher an menschlicher Sprache orientierte Syntax von strtotime() oft auch ohne Zusatzkommentare einfacher erfassbar ist als die Zahlenwerte.

                [*] Rechnung? Zählung meinst du wohl eher.

                Lo!

                1. Hallo,

                  [*] Rechnung? Zählung meinst du wohl eher.

                  die Gegenfrage ist berechtigt - ich meinte aber tatsächlich die Zeitrechnung, also die Bestimmung von Zeiträumen, zeitlichen Abständen und Vielfachen davon.

                  So kontinuierlich ist die Zeitrechnung[*] (ohne die Sommerzeitproblematik) nun auch wieder nicht. Da gibt es unterschiedlich lange Monate und gelegentlich einen Tag mehr im Jahr.

                  Ja, aber das sind alles Widrigkeiten, die wir bei konsequenter Verwendung eines gleichförmigen Zeitmaßes wie Unix-Timestamp oder Julianischem Datum nicht hätten.

                  Und Schaltsekunden gibt es wegen der etwas eiernden Erde auch gelegentlich. Allerdings werden die Schaltsekunden vom Unix-Timestamp ignoriert.

                  Von den meisten Menschen auch. :-)

                  Die Idee mit der Sekundenrechnerei, auch wenn du UTC als Basis nimmst, ist nicht immer hilfreich.

                  Doch, ich finde schon. Das macht die meisten Betrachtungen *erheblich* einfacher.

                  Mit strtotime() erschlägt man mehr Probleme auf einfachere Weise.

                  Da ist meine Welt- oder Zeitanschauung wohl anders. Wenn ich sage: "Ich erwarte deine Antwort innerhalb von acht Stunden", dann meine ich acht Stunden, egal ob zwischendurch von Sommer- auf Winterzeit umgestellt wird.

                  Hinzu kommt, dass die näher an menschlicher Sprache orientierte Syntax von strtotime() oft auch ohne Zusatzkommentare einfacher erfassbar ist als die Zahlenwerte.

                  Tatsächlich? Wenn dir jemand am Dienstagabend sagt, du mögest ihn bitte heute in acht Tagen am gleichen Ort wieder treffen, kommst du dann am Mittwoch der Folgewoche? Korrekt wär's jedenfalls. Die meisten meinen dabei in Wirklichkeit sieben Tage.

                  Ciao,
                   Martin

                  --
                  Eifersucht ist so alt wie die Menschheit: Als Adam einmal spät heimkam, zählte Eva sofort seine Rippen.
                  1. Hi!

                    Wenn ich sage: "Ich erwarte deine Antwort innerhalb von acht Stunden", dann meine ich acht Stunden, egal ob zwischendurch von Sommer- auf Winterzeit umgestellt wird.

                    Eine Zeitspanne von x Stunden ist eine präzise Angabe. Wenn allerdings jemand 24 Stunden mit der weniger genauen Angabe 1 Tag verwechselt, ist das an zwei Tagen im Jahr (in deinem Beispiel an einem) möglicherweise ein Problem.

                    Hinzu kommt, dass die näher an menschlicher Sprache orientierte Syntax von strtotime() oft auch ohne Zusatzkommentare einfacher erfassbar ist als die Zahlenwerte.
                    Tatsächlich? Wenn dir jemand am Dienstagabend sagt, du mögest ihn bitte heute in acht Tagen am gleichen Ort wieder treffen, kommst du dann am Mittwoch der Folgewoche? Korrekt wär's jedenfalls. Die meisten meinen dabei in Wirklichkeit sieben Tage.

                    Mir ist es auch schleierhaft, wie man 7 Tage meinen kann und stattdessen 8 [*] sagt, doch Sprache sollte man nicht immer mit Logik analysieren wollen. In dem Fall würde ich mich noch nicht mal aufregen und stillschweigend 7 Tage annehmen. Es sei denn, andere bekannte Fakten ergeben, dass wirklich 8 Tage gemeint sind.

                    Da dem Engländer (auch den damals ausgewanderten) diese deutsche(?) Eigenheit egal ist, rechnet strtotime() so wie man es schreibt, und nicht, wie man es meint.

                    [*] Eine Erklärung dazu fand ich auf die Schnelle nicht, stattdessen dass man wohl in Frankreich 15 Tage für zwei Wochen sagt.

                    Lo!

                    1. Tatsächlich? Wenn dir jemand am Dienstagabend sagt, du mögest ihn bitte heute in acht Tagen am gleichen Ort wieder treffen, kommst du dann am Mittwoch der Folgewoche? Korrekt wär's jedenfalls. Die meisten meinen dabei in Wirklichkeit sieben Tage.

                      Ich wäre Mittwoch gekommen (falls ich widererwartend nicht nachgefragt hätte). Ich kenne nur die Redewendung "Treffen wir uns Dienstag in sieben Tagen." also mit dem Wochentag. Bei der Angabe bin ich auch fehlertolerant, weil es auch mal Donnerstag in (ja wie viele den nun auf die Schnelle? ach ich sage einfach) zehn Tagen sein kann.

                    2. Guten Tag,

                      [*] Eine Erklärung dazu fand ich auf die Schnelle nicht, stattdessen dass man wohl in Frankreich 15 Tage für zwei Wochen sagt.

                      Es gab in der römischen Republik bis zu Konstantin dem Großen ein Acht-Tage-System mit starkem Markttagsbezug (Nundinalzyklus). Vielleicht ein gedankliches Relikt aus diesen Tagen.

                      Gruß
                      Christoph Jeschke

                      --
                      Zend Certified Engineer
                      Certified Urchin Admin
                      Selfcode: sh:( fo:) ch:? rl:? br:& n4:( ie:( mo:) va:} de:] zu:$ fl:( ss:} ls:& ja:|
            2. Nein, Hinweiß ;-) Und zwar ein wertvoller, den dedlfix hier gegeben hat.

              Falls er mit seiner Vermutung über das gewünschte Ergebnis richtig liegt.

              Falls nicht ...

              Gesprächsnotiz vom 24.10.2009, 0.30 Uhr:
              "Wir haben es fast geschafft, der Herstellungsprozeß des Hauptspiegels unseres neuen Spiegelteleskops neigt sich nach nun fast acht Jahren dem Ende. Jetzt folgt die letzte Temperierungsphase deren Länge sieben Tage beträgt, die auf zwei Minuten genau eingehalten werden muß."

              Gesprächsnotiz vom 31.10.2009, 0.35 Uhr:
              "Falls die Mittel für einen zweiten Spiegel bewilligt werden, soll Schmidt eine Stellenanzeige für einen neuen Bademeister verfassen."

              1. Hi!

                Nein, Hinweiß ;-) Und zwar ein wertvoller, den dedlfix hier gegeben hat.
                Falls er mit seiner Vermutung über das gewünschte Ergebnis richtig liegt.

                Wie aus des OPs anderem Posting hervorgeht, ist es in diesem Fall vermutlich egal, dass manche Tage andere Längen haben. Doch manchmal verwendet man Code oder Ideen in anderen Projekten wieder, bei denen es mehr darauf ankommt. Und warum sollte er da den unsicheren Weg einschlagen, wenn es einen besseren gibt.

                Gesprächsnotiz vom 24.10.2009, 0.30 Uhr:
                "Wir haben es fast geschafft, der Herstellungsprozeß des Hauptspiegels unseres neuen Spiegelteleskops neigt sich nach nun fast acht Jahren dem Ende. Jetzt folgt die letzte Temperierungsphase deren Länge sieben Tage beträgt, die auf zwei Minuten genau eingehalten werden muß."

                Gut, aber mal wieder Ernst beiseite: wenn es auf solche exakten Bedingungen ankommt, sollte man nicht mit solch unpräzisen Zeitangaben (sieben Tage) daherkommen.

                Lo!

                1. Nein, Hinweiß ;-) Und zwar ein wertvoller, den dedlfix hier gegeben hat.
                  Falls er mit seiner Vermutung über das gewünschte Ergebnis richtig liegt.

                  Wie aus des OPs anderem Posting hervorgeht, ist es in diesem Fall vermutlich egal, dass manche Tage andere Längen haben. Doch manchmal verwendet man Code oder Ideen in anderen Projekten wieder, bei denen es mehr darauf ankommt. Und warum sollte er da den unsicheren Weg einschlagen, wenn es einen besseren gibt.

                  Wenn er ein falsches Ergebnis liefert ist er auch dann nicht besser, wenn er besser wäre*, wenn das Ergebnis richtig wäre. Er ist auch nicht besser als der sicherer Weg, wenn der sichere Weg für etwas anderes unsicher wäre. Es stehen zwei Aufgabenstellungen im Raum und bei der Wiederverwendung des Codes muß man prüfen, ob "falls" oder "falls nicht" zutrifft, falls es darauf ankommt.

                  *Was ich nicht in Zweifel ziehe.

                  Gesprächsnotiz vom 24.10.2009, 0.30 Uhr:
                  "Wir haben es fast geschafft, der Herstellungsprozeß des Hauptspiegels unseres neuen Spiegelteleskops neigt sich nach nun fast acht Jahren dem Ende. Jetzt folgt die letzte Temperierungsphase deren Länge sieben Tage beträgt, die auf zwei Minuten genau eingehalten werden muß."

                  Gut, aber mal wieder Ernst beiseite: wenn es auf solche exakten Bedingungen ankommt, sollte man nicht mit solch unpräzisen Zeitangaben (sieben Tage) daherkommen.

                  Aber um die Stunde für die Sommerzeit zu berücksichtigen ist die Angabe mit einer signifikanten Stelle präzise genug? Wo ist die Grenze und wer legt die fest, vor allem, wenn es mal "mehr darauf ankommt"?

                  Ich habe für meine Aufgabenstellung die Grenze angegeben und dennoch war die Arbeit für die Tonne. Aber darauf kommt es auch nicht an. Wenn ich geschrieben hätte, von der Zeit darf maximal um eine Stunde abgewichen werden, und der Spiegel wäre um 1:30 aus dem Prozeß genommen wurden, wäre er auch hinüber. Genauso für eine maximale Abweichung von einem Tag und einer Entnahme am 01.11 um 0:02Uhr.

                  1. Er ist auch nicht besser als der sicherer Weg, wenn der sichere Weg für etwas anderes unsicher wäre.

                    Sollte eigentlich heißen: Er ist auch nicht besser als der sicherer Weg, nur weil der sichere Weg für etwas anderes unsicher wäre.

                  2. Hi!

                    Gesprächsnotiz vom 24.10.2009, 0.30 Uhr:
                    "Wir haben es fast geschafft, der Herstellungsprozeß des Hauptspiegels unseres neuen Spiegelteleskops neigt sich nach nun fast acht Jahren dem Ende. Jetzt folgt die letzte Temperierungsphase deren Länge sieben Tage beträgt, die auf zwei Minuten genau eingehalten werden muß."
                    Gut, aber mal wieder Ernst beiseite: wenn es auf solche exakten Bedingungen ankommt, sollte man nicht mit solch unpräzisen Zeitangaben (sieben Tage) daherkommen.
                    Aber um die Stunde für die Sommerzeit zu berücksichtigen ist die Angabe mit einer signifikanten Stelle präzise genug?

                    Nein, eine Angabe in Stunden im Gegensatz zu Tagen hielte ich in dem Fall für angebracht. Zumindest im sprachlichen Bereich. Ob ein in Technik gegossener Zähler intern besser in Minuten zählt sei mal dahingestellt. Abgesehen von den Schaltsekunden vergehen als Zeitdifferenz gemeinte Stunden unabhängig von konkreten Uhrzeiten oder gar Zeitzonen, die man in dieser Zeitspanne möglicherweise wechselt.

                    Vermutlich muss ich meinen Standpunkt konkretisieren. Wenn eine Zeitdifferenz (explizit oder implizit) von einem bestimmten Startzeitpunkt aus losgeht, so müssen Kalenderbesonderheiten beim Berechnen einbezogen werden. Für Zeiträume ohne konkreten Bezug auf eine lokale Zeit darf man den Kalender nicht hinzuziehen und sollten sprachliche Mehrdeutigkeiten möglichst vermeiden.

                    Lo!

                    1. Vermutlich muss ich meinen Standpunkt konkretisieren.

                      Vermutlich mußt Du das nicht. Dein Hinweis war richtig und wertvoll, und man tut gut daran ihn immer im Hinterkopf zu behalten und zur richtigen Zeit zu berücksichtigen.

                      Wenn eine Zeitdifferenz (explizit oder implizit) von einem bestimmten Startzeitpunkt aus losgeht, so müssen Kalenderbesonderheiten beim Berechnen einbezogen werden.

                      _Es kommt darauf an was man ausrechnen möchte._

              2. Gesprächsnotiz vom 24.10.2009, 0.30 Uhr:
                "Wir haben es fast geschafft, der Herstellungsprozeß des Hauptspiegels unseres neuen Spiegelteleskops neigt sich nach nun fast acht Jahren dem Ende. Jetzt folgt die letzte Temperierungsphase deren Länge sieben Tage beträgt, die auf zwei Minuten genau eingehalten werden muß."

                Ok. Jetzt habe ich doch mal bei Wikipedia nachgesehen, was ein Tag eigentlich ist. Antwort: Kommt drauf an. Der SI-Tag ist eine Zeitspanne von 86400 Sekunden, in Bezug auf diesen war dedlfix' Aussage falsch. Der Kalendertag ist die Zeitspanne zwischen zwei aufeinanderfolgenden Mitternächten, in Bezug darauf war seine Aussage richtig. Klugscheißerei war es jedenfalls nicht.

                Gesprächsnotiz vom 31.10.2009, 0.35 Uhr:
                "Falls die Mittel für einen zweiten Spiegel bewilligt werden, soll Schmidt eine Stellenanzeige für einen neuen Bademeister verfassen."

                :-D

                Viele Grüße,
                der Bademeister

                1. Ok. Jetzt habe ich doch mal bei Wikipedia nachgesehen, was ein Tag eigentlich ist. Antwort: Kommt drauf an. Der SI-Tag ist eine Zeitspanne von 86400 Sekunden, in Bezug auf diesen war dedlfix' Aussage falsch. Der Kalendertag ist die Zeitspanne zwischen zwei aufeinanderfolgenden Mitternächten, in Bezug darauf war seine Aussage richtig.

                  Das ist das eine und das andere ist, was man berchnen will. Ich dachte mit "Er will den timestamp um sieben Tage verlängern, nicht den timestamp von der gleichen Uhrzeit in sieben (Kalendertagen-)Tagen" hätte ich das ausreichend deutlich gemacht.

                  Klugscheißerei war es jedenfalls nicht.

                  "SCNR" wollte ich aber auch nicht schreiben.

                  Nix für Unmut.

                  1. Ich dachte mit "Er will den timestamp um sieben Tage verlängern, nicht den timestamp von der gleichen Uhrzeit in sieben (Kalendertagen-)Tagen" hätte ich das ausreichend deutlich gemacht.

                    Deutlich ist die Aussage - beim zweiten Mal Lesen unter der Annahme, dass ein "Tag" eben ein SI-Tag ist. Aber dass sie richtig ist - sprich, dass "er" wirklich dieses will - glaube ich nach wie vor nicht, jedenfalls ist es (mir) anhand des Ausgangspostings nicht klar. Die Anwendungsfälle, bei denen man unabhängig von Uhrzeiten eine exakte Zeitspanne addieren will, die zufällig ein ganzzahliges Vielfaches eines SI-Tages ist, halte ich für dünn gesät.

                    Klugscheißerei war es jedenfalls nicht.

                    "SCNR" wollte ich aber auch nicht schreiben.

                    Ich einige Euch auf Unentschieden ;-)

                    Viele Grüße,
                    der Bademeister

                    1. ... dass "er" wirklich dieses will - glaube ich nach wie vor nicht, ...

                      Aber daß er es doch will "hat er jedenfalls gesagt".

                      ... jedenfalls ist es (mir) anhand des Ausgangspostings nicht klar.

                      Mir doch auch nicht.

                      Die Anwendungsfälle, bei denen man unabhängig von Uhrzeiten eine exakte Zeitspanne addieren will, die zufällig ein ganzzahliges Vielfaches eines SI-Tages ist, halte ich für dünn gesät.

                      Exakt will er es vermutlich nicht. Er will nach sieben Tagen löschen und nicht zur selben Uhrzeit in sieben Tagen. Auf die Uhrzeit kommt es ihm nicht an. Er hat nur vermutlich nicht darüber nachgedacht und da das eine willkürliche Zeitdifferenz sein wird, ist es egal wenn daß in ca. 2 von 52 Fällen ein etwas anderes Ergebnis liefert.

                2. ... in Bezug darauf war seine Aussage richtig. Klugscheißerei war es jedenfalls nicht.

                  Ach so, Mißverständnis, ich wollte dedlfix wertvollen Hinweis nicht als Klugschiß hinstellen. Ich habe nur, ohne in Erinnerung gebliebenen Grund, das "Klugscheiß on" vor meiner Antwort weggelassen.

                  1. Ach so, Mißverständnis, ich wollte dedlfix wertvollen Hinweis nicht als Klugschiß hinstellen. Ich habe nur, ohne in Erinnerung gebliebenen Grund, das "Klugscheiß on" vor meiner Antwort weggelassen.

                    Ah ok, das war dann tatsaechlich ein Missverstaendnis. Jetzt liest sich das alles in einem ganz anderen Licht - ich war tatsaechlich ziemlich verwundert, wie sicher Du Dir zu sein schienst, aus dem Originalposting rauslesen zu koennen, dass es um eine Addition einer festen Zeitspanne gehen soll.

                    Gut, dass wir drueber gesprochen haben... :-)

                    Viele Gruesse,
                    der Bademeister

        2. Hi!

          Wenn Du erstmal weißt, was Unixtime ist und weißt, dass ein Tag 86400 Sekunden hat, wirds einfacher ;-)

          Diese Annahme ist falsch. Es gibt zwei Ausnahmen im Jahr, wenn man von hiesiger Lokalzeit ausgeht.

          Und weshalb sollte das meine Aussage in Frage stellen, hm?

          ES WIRD einfacher, sobald er diese beiden Dinge weiß!

          1. Hi!

            Wenn Du erstmal weißt, was Unixtime ist und weißt, dass ein Tag 86400 Sekunden hat, wirds einfacher ;-)
            Diese Annahme ist falsch. Es gibt zwei Ausnahmen im Jahr, wenn man von hiesiger Lokalzeit ausgeht.
            Und weshalb sollte das meine Aussage in Frage stellen, hm?
            ES WIRD einfacher, sobald er diese beiden Dinge weiß!

            Nein, wird es nicht, weil die Ausnahmen berücksichtigt werden müssen, wenn man es richtig machen will. Wenn man weiß, dass es strtotime() gibt, ist es hingegen tatsächlich einfach, denn da muss man nichts selbst rechnen und die Ausnahmen werden obendrein berücksichtigt. Es ist ja nicht nur die Sommerzeit sondern es sind auch solche Wünsche wie "+ 1 Monat", die sich nicht einfach in "Anzahl der Sekunden von x Tagen" ausdrücken lassen.

            Lo!

  2. hallo!

    Also time()+7 oder wie?
    oder time()+168? Ne Woche hat ja 168 Stunden.

    der Timestamp zeigt die Sekunden, die seit 1.1.1970(?) vergangen sind, folglich musst du auch mit Sekunden weiterrechnen. Also 7 Tage in Sekunden addieren.

    lg