Teil von  SELFPHP
Letztes Update: 19.07.2006 12:34:38 


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Tage eines Monats ermitteln




Systemvoraussetzung

  • Linux
  • Windows
  • PHP 3
  • PHP 4
  • PHP 5

Datei(en)

dayofmonth.php

Problem

Sie müssen für eine Datumsberechnung die Gesamtmenge der Tage eines Monats ermitteln. Diese kann sehr variieren, da bei Schaltjahren der Februar nur 29 Tage hat und Sie hier den richtigen Wert benötigen.

Lösung

Auch hier gibt uns PHP wieder eine sehr große Hilfestellung. Die Funktion date() liefert mit dem Parameter "t" die Anzahl der Tage eines Monats. Hierbei wird auch ein Schaltjahr berücksichtigt. Als Rückgabewert erhalten wir hier je nach Monat und Schaltjahr eine Zahl zwischen 28 und 31.

1:
2:
3:
<?php
echo date("t");
?>


Um sich z. B. für ein ganzes Jahr diesen Wert liefern zu lassen, können Sie nachfolgendes Beispiel verwenden. Bitte beachten Sie aber, dass die Funktion mktime() (32, 33) nur Datumswerte zwischen 1970 und 2038 verarbeiten kann.

Da wir die Monatsnamen in deutscher Schreibweise erhalten wollen, müssen wir zuerst überprüfen, auf welchem Betriebssystem unser Beispiel ausgeführt wird. Je nachdem, ob es sich um Windows oder Linux handelt, haben wir einen anderen Ländercode anzugeben. Wir überprüfen also erst das Betriebssystem (24), um dann mittels setlocale() (27) den Ländercode zu setzen.

Die FOR-Schleife (31) durchläuft für jeden Monat die Schleife und speichert dabei den Monatsnamen (32) in deutscher Ausgabe und die Anzahl der Tage des Monats (33), um Sie dann zeilenweise auszugeben (34).

24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:

35:
36:
if (strtoupper(substr(PHP_OS03)) === 'WIN')
    
$localeCode 'ge';
else
    
$localeCode 'de_DE';

setlocale(LC_TIME,$localeCode);

for(
$x=1;$x<=12;$x++){
    
$monat strftime("%B",mktime(000$x1date("Y")));
    
$tage date("t",mktime(000$x1date("Y")));
    echo 
"Der " $monat " " date("Y") . " hat " $tage 
    " Tage.<br>\n"
;
}
?>

Beispiel 2.8: dayofmonth.php

Ausgabe im Browser

Der Januar 2006 hat 31 Tage.
Der Februar 2006 hat 28 Tage.
Der März 2006 hat 31 Tage.
Der April 2006 hat 30 Tage.
Der Mai 2006 hat 31 Tage.
Der Juni 2006 hat 30 Tage.
Der Juli 2006 hat 31 Tage.
Der August 2006 hat 31 Tage.
Der September 2006 hat 30 Tage.
Der Oktober 2006 hat 31 Tage.
Der November 2006 hat 30 Tage.
Der Dezember 2006 hat 31 Tage.



 

 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt