:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
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_OS, 0, 3)) === 'WIN')
$localeCode = 'ge';
else
$localeCode = 'de_DE';
setlocale(LC_TIME,$localeCode);
for($x=1;$x<=12;$x++){
$monat = strftime("%B",mktime(0, 0, 0, $x, 1, date("Y")));
$tage = date("t",mktime(0, 0, 0, $x, 1, date("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. |
Dieses Skript aus dem SELFPHP KOCHBUCH wurde von SELFPHP unter dem "Tarif Mc500" von McAc.net-Webhosting erfolgreich ausgeführt und getestet!
Auf der Übersichtseite unter "McAc.net – Webhosting zu diesem Buch" finden Sie weitere Informationen zu dem Webhostingpaket, dass durch SELFPHP getestet wurde.
|
|
|
|
|
|