mktime setzt das Jahr falsch

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

  • mktime setzt das Jahr falsch

    Hallo miteinander,

    als PHP-Neuling habe ich versucht mit den Timestamps zu arbeiten.
    Ich habe folgende Umgebung: OS Linux Opensuse 11.4; PHP 5.3.5; Apache 2.2.2
    Folgender PHP-Code funktioniert seltsamerweise mit dem Neujahrsdatum nicht erwartungsgemäß:
    ...
    echo '<br /> ' . date('d.m.o',strtotime("1.1.2010")) ;
    $date=2012;
    $tstamp1= mktime(0,0,0,1,1,$date);
    echo '<br /> ' . date('d.m.o',$tstamp1);
    $tstamp2= mktime(0,0,0,1,1,2012);
    echo '<br /> ' . date('d.m.o',$tstamp2) . '<br /> ';
    var_dump('<br /> ',$date, $tstamp1, $tstamp2);
    ...
    Als Ausgabe erscheint:
    01.01.2009
    01.01.2011
    01.01.2011
    string(8) "
    " int(2012) int(1325372400) int(1325372400)
    Mit anderen Tagen und/oder Monaten funktioniert alles einwandfrei.
    Was mache ich hier falsch?
    Hat jemand bitte einen Hinweis, was hier das Problem ist?
    Hans

  • #2
    Aus dem Handbuch zum Parameter o:
    Jahreszahl gemäß ISO-8601. Dies ergibt den gleichen Wert wie Y, außer wenn die ISO-Kalenderwoche (W) zum vorhergehenden oder nächsten Jahr gehört, wobei dann jenes Jahr verwendet wird (in PHP 5.1.0 hinzugefügt)
    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Schon mal ins Handbuch geschaut, was o überhaupt bedeutet?

      "Jahreszahl gemäß ISO-8601. Dies ergibt den gleichen Wert wie Y, außer wenn die ISO-Kalenderwoche (W) zum vorhergehenden oder nächsten Jahr gehört, wobei dann jenes Jahr verwendet wird"

      http://de.php.net/manual/de/function.date.php

      Kommentar


      • #4
        Danke euch beiden! Die ISO war mir nicht in der Schärfe bewusst.
        In der Zwischenzeit hatte ich bemerkt, dass der mktime-timestamp richtig ist, also etwas anderes dafür verantwortlich sein muss.
        Nochmals Danke.
        Hans

        Kommentar

        Lädt...
        X