PHP – Zeit- und Datumsfunktionen

Werbung

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)));?>
 

Weitere Beiträge:

Über Gastautor

DrWeb.de ist die "Grande Dame" des deutschen Bloggings und seit nunmehr 14 Jahren im Internet aktiv. Das beliebte Magazin richtet sich dabei an Webworker, Selbstständige, IT-Entscheider, Seitenbetreiber sowie Marketing-Verantwortliche und bietet einen Überblick im undurchdringlichen Dschungel zahlreicher "Geld verdienen im Internet" Konzepte. Werden Sie jetzt Gastautor und profitieren Sie von der großen Reichweite und den Markennamen DrWeb.de.

, ,

4 Kommentare zu PHP – Zeit- und Datumsfunktionen

  1. Ralf 20. April 2009 at 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 13. Oktober 2009 at 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 29. November 2009 at 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.

Trackbacks

  1. Kalenderaufgabe in PHP (Brauche Hilfe) - Forum Fachinformatiker.de - 3. März 2010

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

Hinterlasse eine Antwort

Bitte bei weiteren Kommentaren per Email benarichtigen! Auch möglich: Abo ohne Kommentar.

Spam protection by WP Captcha-Free