Illya: Falsche Datumsanzeige

Hallo, ich habe hier ein wirklich komisches Problem, es betrifft die Datumsfunktion, den 31.10.2004! Ich habe ein PHP-Script geschrieben der aus einer DB ein Datum holt und eine Anzahl von Tagen zu diesem Datum hinzuaddiert, eigentlich hat es bis jetzt immer funktioniert und ist auch nichts kompliziertes daran, aber er berechnet ein Datum nicht richtig!!! Hier erstmal das Script, es läuft auch online unter: http://trade.morada.de/angebot/bischofsmais2004aktiv/test.php

PHP-Code, es sollen 2 Tage hinzuaddiert werden, beide Ergebnisse sind aber IDENTISCH!:

<?         $termin="2004-10-29";         list ($jahr,$monat,$tag)=split("[-]",$termin);         $stempel=mktime(0,0,0,$monat,$tag,$jahr);         #$uebernachtung=$row["uebernachtung"];         $uebernachtung=2;         $stempel=$stempel+86400*$uebernachtung;         $termin_bis=date("d.m.Y",$stempel);         echo "$termin - $termin_bis<br>";         echo "Tage addiert: $uebernachtung<hr>";

Anderen Tag checken:

$termin="2004-10-30";         list ($jahr,$monat,$tag)=split("[-]",$termin);         $stempel=mktime(0,0,0,$monat,$tag,$jahr);         #$uebernachtung=$row["uebernachtung"];         $uebernachtung=2;         $stempel=$stempel+86400*$uebernachtung;         $termin_bis=date("d.m.Y",$stempel);         echo "$termin - $termin_bis<br>";         echo "Tage addiert: $uebernachtung"; ?> Ich bin ziemlich ratlos, bei der 2.Ausgabe müsste eigentlich der 01.11.2004 herauskommen, es bleibt aber beim 31.10.2004. Wenn man die Tage erhöht, fehlt immer ein Tag, wenn ich zum Bsp. 8 Tage hinzuaddiere, landet er am 06.11.2004, richtig wäre aber der 07.11.2004 HILFE Da ich diesen Fehler das erste mal sehe und es vorher immer funktioniert hat, wundert mich das schon ARRRGH! Wenn mir einer helfen könnte wäre echt SUPER, vielen Dank im Voraus, Illya

  1. Hello,

    ich bin auch noch blind, zumal ich mir die Zeitstempel nochmals zur Kontrolle ausgeben lassen habe und dafür

    Zeitstempel origial: 1099000800
    Zeitstempel addiert: 1099173600
    2004-10-29 - 31.10.2004
    Tage addiert: 2
    --------------------------------------------------------------------------------
    Zeitstempel original: 1099087200
    Zeitstempel addiert: 1099260000
    2004-10-30 - 31.10.2004
    Tage addiert: 2

    erhalte.

    Das bedeutet, dass die date()-Funktion für zwei verschiedene Zeitstempel asselbe Datum ausgibt. Das erinnert mich an den 04. Oktober 1582: http://www.ptb.de/de/org/4/44/441/greg.htm

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hello Ilja,

      nochmal etwas klarer dargestellt:

      echo "Datum für 1099173600: ".date('d.m.Y', 1099173600)."<br>";
          echo "Datum für 1099260000: ".date('d.m.Y', 1099260000)."<br>";
          echo "Datum für 1099263600: ".date('d.m.Y', 1099263600)."<br>";

      egibt die Ausgabe:

      Datum für 1099173600: 31.10.2004
      Datum für 1099260000: 31.10.2004
      Datum für 1099263600: 01.11.2004

      Dämmerts nun?

      warum nimmst Du nicht
          echo date('d.m.Y',strtotime('2004-10-30 + 2 days'));

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau