Datum

PHP – Zeit- und Datumsfunktionen

8. September 2003
von

von Nicolas Rotermund und Christian Fuchs

Mit PHP lässt sich sehr einfach das aktuelle Datum ausgeben. Der Vorteil der PHP-Lösung gegenüber dem Javascript-Pendant ist, dass Javascript nicht auf jedem Browser aktiviert ist. Durch eine kleine Zeile PHP lässt sich auch über die fehlende Aktualität der eigenen Seite hinwegtäuschen.

Für die Datumsausgabe stehen dem Programmierer die Funktion date() und getdate() zur Verfügung. Die Funktion getdate() liefert aktuelle Datums- und Zeitinformationen, während die Funktion date() einen Datumsstring nach den Vorgaben definiert. Zuerst wird für die getdate() Funktion dem Array $datum der Inhalt von getdate() übergeben. Dann kann man mit diesen Variablen auf die wichtigsten Datumsangaben zugreifen:

 $datum
= getdate();

 $datum[weekday]
    

      $datum[month]
    

      $datum[mday]
    

      $datum[mon]
    

      $datum[year]
    

      $datum[yday]
    

      $datum[hours]
    

      $datum[minutes]
    
      $datum[hours]
= sprintf("%02.0f", $datum[hours]);
 $datum[minutes] = sprintf("%02.0f",
$datum[minutes]);
    

So lässt sich analog mit Wochentag und Monat verfahren, so dass die folgende Funktion das aktuelle Datum mit der Uhrzeit ergibt:

      echo
"Heute ist der $datum[mday].$datum[mon].$datum[year]. Es ist $datum[hours]:$datum[minutes]
Uhr. "; 
    

Dies ergibt dann: Heute ist der 25.06.2002. Es ist 17:22 Uhr.

Mit dieser Zeile wird der gestrige Tag als Änderungsdatum der Seite ausgegeben:

      echo "Letzte Aktuaklisierung: ".($datum[mday]-1).".$datum[mon].$datum[year].
Es ist $datum[hours]:$datum[minutes] Uhr. ";
    

Allerdings liefert $datum[weekday] die Tage auf englisch. Mit einer Abfrage kann der Variable auch der deutsche Wert zugewiesen werden:

      if($datum[weekday] == "Monday")
{ $datum[weekday] = "Montag"; }
 if($datum[weekday] == "Tuesday")
{ $datum[weekday] = "Dienstag"; }
 if($datum[weekday] == "Wednesday")
{ $datum[weekday] = "Mittwoch"; }
 if($datum[weekday] == "Thursday")
{ $datum[weekday] = "Donnerstag"; }
 if($datum[weekday] == "Friday")
{ $datum[weekday] = "Freitag"; }
 if($datum[weekday] == "Saturday")
{ $datum[weekday] = "Samstag"; }
 if($datum[weekday] == "Sunday")
{ $datum[weekday] = "Sonntag"; }
    

Alternativ kann man die Datumsfunktionen von PHP auch mit der Funktion date() in dieser Form ausgeben:
date(string format[,int time]).

[,int time] gibt dabei die Zeit an, die formatiert werden soll. Wenn diese Option nicht gesetzt wurde, wird die aktuelle Serverzeit eingesetzt. Verwendet werden kann eine Reihe von Variablen, die hier zusammengestellt sind:

a   “am” oder “pm”
A   “AM” oder “PM”
B   Swatch-Internet-Zeit
d   Tag des Monats, 2-stellig mit führender Null: “01″ bis “31″
D   Tag der Woche als 3 Buchstaben, z.B. “Fri”
F   Monat als ganzes Wort, z.B “January”
g   Stunde im 12-Stunden-Format ohne führende Null: “1″ bis “12″
G   Stunde im 24-Stunden-Format ohne führende Null: “0″ bis “23″
h   Stunde im 12-Stunden-Format: “01″ bis “12″
H   Stunde im 24-Stunden-Format: “00″ bis “23″ i – Minuten: “00″ bis “59″
I   (großes ‘i’) – “1″ bei Sommerzeit, sonst “0″
j   Tag des Monats ohne führende Null: “1″ bis “31″
l   (kleines ‘L’) ausgeschriebener Tag der Woche, z.B. “Friday”
L   boolscher Wert für Schaltjahre: “0″ oder “1″
m   Monat: “01″ to “12″ n – Monat ohne führende Null: “1″ bis “12″
M   Monat als 3 Buchstaben, z.B. “Jan” s – Sekunden: “00″ bis “59″
S   Anhang der englischen Aufzählung, 2 Buchstaben,
z.B. “th” [bei 4 für fourth], “nd” [bei 2 für second]
t   Anzahl der Tage des angegebenen Monats: “28″ bis “31″
T   Zeitzoneneinstellung des Rechners, z.B. “MDT”
U   Sekunden seit Beginn der UNIX-Epoche (1.1.1970)
w   Wochentag beginnend mit “0″ (Sonntag) bis “6″ (Samstag)
Y   Jahr als vierstellige Zahl, z.B. “1999″
y   Jahr als zweistellige Zahl, z.B. “99″
z   Tag des Jahres: “0″ bis “365″
Z   Offset der Zeitzone gegen GTM (“-43200″ bis “43200″)
in Minuten. Hier nicht angegebene Zeichen wie zB:
“, ” oder “:” können im String mit angegeben werden.

Hier einige Beispiele:

      <?echo "Heute ist
der ".date("d.m.Y").", es ist jetzt ".date("H:i");?>

    
      <?echo
"Letzte Aktualisierung dieser Seite: ".date("l, d.m.Y, H:i",filemtime(basename($PHP_SELF)));?>
 

4 Kommentare zu „PHP – Zeit- und Datumsfunktionen

  1. Ralf am 20. April 2009 um 07:33

    Hallo, habt Ihr das mal überprüft??

    Läuft gar nicht:

    echo
    “Heute ist der $datum[mday].$datum[mon].$datum[year]. Es ist $datum[hours]:$datum[minutes]
    Uhr. “;

    ist falsch: $datum[yday] richtig wohl eher so $datum['yday']

    Sorry

  2. renet am 13. Oktober 2009 um 16:39

    Bei mir läufts genau so (1:1 kopiert) wunderbar, wie hier beschrieben. Naturlich nicht vergessen, die Variable zuvor zu definieren. ;)

  3. Sadano am 29. November 2009 um 15:56

    Stimme renet zu ^^

    Allerdings kann man die Sache mit den deutschsprachigen Wochentagen weit besser lösen:

    // deutsche Wochentage
    $wt = array(“Sonntag”,
    “Montag”,
    “Dienstag”,
    “Mittwoch”,
    “Donnerstag”,
    “Freitag”,
    “Samstag”);

    // Wochentag ausgeben
    echo $wt[date("w",time())];

    Ist wesentlich ressourcen-schonender und außerdem kürzer.

  4. [...] 2 Sekunden google habe ich schonmal das gefunden. K

Ein Kommentar? Schön!

Wir freuen uns immer über Leser, die durch nützliche und konstruktive Beiträge zum Thema eine Diskussion anstoßen oder den Artikel mit weiteren Informationen anreichern. Alle Kommentare werden in diesem Sinne moderiert. Zum Kommentar-Fairplay gehört für uns auch der Einsatz von rel="nofollow". Bitte verwenden Sie zudem als Namen weder eine Domain noch ein spamverdächtiges Wort. Vielen Dank!

*