Nummer des letzten Monats plötzlich falsch!

Thema wurde von Manni_HB, 29. März 2014 erstellt.

  1. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Ich stehe vor einem Rätsel! :(

    Code:
    $lastmonat = date("n", strtotime("-1 month"));
    Ab Mitternacht (29.03) wird als letzter Monat "03" ausgegeben!

    Gab es eine Kalenderreform, die ich verpennt habe oder gibt es irgendeine andere Erklärung dafür?
     
  2. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das riecht stark nach einem PHP-Bug...

    date('d.m.Y',strtotime("-1 month")) ergibt "01.03.2014".

    Anscheinend hat PHP Probleme mit dem Februar.....
     
  3. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Aber erst ab dem 29. (00:00) !! :mad:

    Und nu? <Heul ON>
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nicht weinen, Alter....

    Nimm das:

    PHP:
    date('n',mktime(0,0,0,(int)date('m')-1,1,(int)date('Y')))
    Das rechnet richtig: 2.
     
  5. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Du darfst dich als geknuddelt betrachten! :)

    Nur für´s Stammbuch:
    - Formel falsch oder tatsächlich PHP-Bug?
     
  6. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ich bin für Bug....

    Viel falsch machen kann man da ja nicht....

    Scheint ein generelles "strtotime"-Problem zu sein.

    Da http://derickrethans.nl/obtaining-the-next-month-in-php.html wir ein ähnliches Problem beschrieben...
     
  7. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Dann wollen wir ganz dolle hoffen, dass diese Abfrage nirgends im Shop vorkommt .... abgesehen vom meinem Script!
     
  8. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Upps - scheinbar doch!?
     
  9. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist wohl ein übler systematischer Fehler von "strtotime".

    Da wird wohl einfach der Monat um "1" erniedrigt.

    Aus dem 29. März wird dann der 29. Februar, der dann (richtiger Weise) als 1. März berechnet wird.

    Ziemlich dumm, so ein Fehler...