Elmo: Tage eines Monats

Hallo allesamt.

Wie kann ich mir in PHP ausgeben lassen, wie viel Tage z.B. der Monat Februar 2006 hat?

liebe Grüße
Elmo

  1. hi,

    Wie kann ich mir in PHP ausgeben lassen, wie viel Tage z.B. der Monat Februar 2006 hat?

    Schau bei date() nach.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. gudn tach!

      Wie kann ich mir in PHP ausgeben lassen, wie viel Tage z.B. der Monat Februar 2006 hat?

      Schau bei date() nach.

      und zwar im manual. in "Table 1. The following characters are recognized in the format parameter string" ist das zeichen t, was du vermutlich suchst.

      prost
      seth

  2. Hallo Elmo,

    Wie kann ich mir in PHP ausgeben lassen, wie viel Tage z.B. der Monat Februar 2006 hat?

    ich weiß nicht, ob ich deine Absicht ganz richtig verstanden habe - aber ich würde das für eine allgemeine Lösung im ersten Schritt einfach über ein Array lösen:

    $month = array(31,28,31,30,31,30,31,31,30,31,30,31);

    Nun kommt für den Februar natürlich noch die Schaltjahr-Problematik dazu. Ein Schaltjahr haben wir, wenn die Jahreszahl durch 4, aber nicht durch 100 teilbar ist, aber doch wieder, wenn die Jahreszahl durch 400 teilbar ist. Das ganze in einen handlichen Ausdruck verpackt:

    $isleapyear = ( (($year%4)==0 && ($year%100)!=0) || ($year%400)==0 )

    Diese Formel kann man natürlich kompakter schreiben, ich habe hier bewusst die ausführliche Schreibweise gewählt, damit das Prinzip besser sichtbar bleibt.

    Das ganze würde ich nun in eine Funktion packen, die zunächst die Anzahl der Tage des gefragten Monats aus dem Array holt, dann abfragt, ob es sich um ein Schaltjahr handelt, und falls ja, das Ergebnis um eins erhöht.

    So long,
     Martin

    --
    Der Alptraum jedes Computers:
    "Mir war, als hätte ich gerade eine 2 gesehen."
  3. Hello,

    Wie kann ich mir in PHP ausgeben lassen, wie viel Tage z.B. der Monat Februar 2006 hat?

    Vielleicht klappt es so:

    <?php   ### daysofmonth.php ###

    $year = 2006;
    $month = 'February';
    $day   = 5;

    $numdays = date('t',strtotime("$month $day $year"));

    echo "$month $year hat $numdays Tage";

    ?>

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

    Tom

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

    1. Hello,

      kleiner Nachtrag:

      Denk dran, dass das nur von 1970 bis 2037 einschließlich sicher funktioniert.
      Je nach PHP-Version arbeiten die Zeitfunktionen auch mit negativen Timestamps. Allerdings muss man dann noch die -1 sicher ausschließen. Das ist der Rückgabewert für "Fehler aufgetreten".

      <?php   ### daysofmonth.php ###

      $month = 'February';
      $day   = 5;

      for ($year = 1950; $year < 2051; $year++)
      {
        $numdays = date('t',strtotime("$month $day $year"));
        echo "$month $year hat $numdays Tage<br>\n";
      }

      ?>

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

      Tom

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