Probleme mit easter_date

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

  • Probleme mit easter_date

    Hallo,

    ich habe ein merkwürdiges Problem mit easter_date():

    date("d.m.",easter_date()-21*86400)

    gibt nicht 30.3. zurück, wie es sollte, sondern 29.3.

    date("d.m.",easter_date()-20*86400)

    gibt nun nicht etwa 30.3. zurück, sondern 31.3.
    Wie sicher alle wissen, ist Ostern dies Jahr am 20.4.

    date("d.m.",easter_date()-14?86400)

    gibt dann auch richtig den 6.4. zurück. Ich bin ziemlich verwirrt. Es scheint den 30.3. einfach nicht zu geben. Wie kommt so etwas zustande? Ist das ein bekannter Bug?
    Die PHP-Version ist 4.1.2
    Dr. Martinus
    http://www.drmartinus.de/

  • #2
    Wahrscheinlich ist es, weil zwischen Ostern und Deinem Zeitpunkt die Uhr umgestellt wird..
    So ein Problem gabs schon mal hier irgendwo...

    Da Du mit 86400 Sekunden als Tag rechnest und easter_date einen timestamp zurückgibt... überschreitest Du die Tagesgrenze

    e.g.
    echo date("M-d-Y",mktime(0,0,0,date ("m", easter_date(2003)),date ("d", easter_date(2003))-21,date ("Y", easter_date(2003))));

    Was besseres is mir jetzt net eingefallen
    Zuletzt geändert von MelloPie; 28.03.2003, 13:47.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Das würde wohl auch nicht funktionieren, denn ich kriege ja Minus-tage raus - oder macht PHP das mit? Ich hab's noch nicht ausprobiert. Bei Deinem Vorschlag käme raus:

      echo date("M-d-Y",mktime(0,0,0,4,-1,2003));

      Na, ich werd's mal ausprobieren. An die Zeitumstellung habe ich natürlich nicht gedacht, wie kommt PHP dazu, das zu berücksichtigen? Da kann man ja in Teufels Küche kommen.
      Dr. Martinus
      http://www.drmartinus.de/

      Kommentar


      • #4
        Hab's gerade probiert, es funktioniert. Danke!
        Dr. Martinus
        http://www.drmartinus.de/

        Kommentar


        • #5
          Es ist schon richtig, dass PHP die Umstellung mitberechnet. Hatte das Problem von Sommer auf Winter. Da haben wir auch rumgerätselt, bis dann von Wahsaga der Tipp auf Umstellung kam, woran man natürlich normal nicht denkt.

          Kommentar


          • #6
            Original geschrieben von DrMartinus
            Das würde wohl auch nicht funktionieren, denn ich kriege ja Minus-tage raus - oder macht PHP das mit? Ich hab's noch nicht ausprobiert. Bei
            Tja Du solltest Dir die mktime funktion anschauen dann hättste Dir den Post sparen können.

            Faktisch ist es doch so, dass ein Tag im Jahr nur 23 Stds hat und einer 25.

            Das heisst eigentlich rechnet php da genau richtig, denn wenns anders wär könnte man auch in Teufelsküche kommen.
            Ihr solltet Euch halt abgewöhnen mit 86400 Sekunden je Tag zu rechnen denn zumindest an 2 Tagen stimmt das nicht. Übers Jahr gleicht sich das wieder aus.

            Perfekt für solche Berechnungen ist mktime mit Tagen und Monaten zu rechnen (s.o.) da wird zwar die Zeile mal ein bissi grösser aber es stimmt wenigstens.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Ich habs mir seitdem abgewöhnt. Zumindestens da, wos nötig ist D

              Kommentar


              • #8
                Original geschrieben von MelloPie
                Faktisch ist es doch so, dass ein Tag im Jahr nur 23 Stds hat und einer 25.

                Das heisst eigentlich rechnet php da genau richtig, denn wenns anders wär könnte man auch in Teufelsküche kommen.
                Naja, so leicht ist das auch nicht. Erstmal kann irgendwann jemand auf die Idee kommen, diese Sommerzeitgeschichte wieder abzuschaffen - da würde PHP wohl nicht sofort mitziehen. Oder den Beginn und das Ende auf ein anderes Wochenende zu legen (war es vor ein paar Jahren auch noch). Dann scheint es mir schwierig für Länder, in denen es Sommerzeit nicht gibt.

                Aber ich will hier keine lange Diskussion anfangen über Zeitprogrammieren im internationalen Kontext. Danke nochmal für die Hilfe, ich habe die Funktion entsprechend umgebaut, das Problem ist also gelöst.
                Dr. Martinus
                http://www.drmartinus.de/

                Kommentar


                • #9
                  OffTopic:
                  Na den will ich sehen, der die SZ abschafft.
                  Zuletzt geändert von TobiaZ; 28.03.2003, 17:37.

                  Kommentar


                  • #10
                    hallo,

                    es scheint, als wäre easter_date bei meinem provider nicht aktiv.
                    gibt es einen work-arround?

                    gruss, wolfgang

                    Kommentar


                    • #11
                      ok, erledigt.
                      habe unter falschem stichwort gesucht.

                      Kommentar


                      • #12
                        hallo,

                        ostern kann man selbst ausrechnen. die mathematische formel gibts bei

                        http://www.ptb.de/de/suche/_index.html
                        - nach "ostern" suchen

                        läßt sich relativ leicht in php umsetzen
                        gruss oskar40

                        kapieren - nicht kopieren

                        Kommentar


                        • #13
                          hallo nochmal,

                          das problem mit sommerzeit/winterzeit hatte ich auch. mir wurde seinerzeit der einsatz von

                          gmdate()

                          empfohlen. funktioniert ähnlich wie date(), aber auf basis der greenwich mean time. dann entfällt das problem mit der fehlenden stunde. seitdem klappt's.
                          gruss oskar40

                          kapieren - nicht kopieren

                          Kommentar


                          • #14
                            alles was datumsinformationen angeht, so findet mal hier mehr infos...
                            http://www.php-resource.de/forum/sho...threadid=23877
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Ist schon heftig, dass die mir meine Brainstorming-Rubrik abgeknöpft haben ...

                              Vielleicht sollten wir aber mal für sämtliche Datumssachen eine art Snippetssamlung machen...

                              Kommentar

                              Lädt...
                              X