date

(PHP 4, PHP 5, PHP 7, PHP 8)

dateFormatiert einen Unix-Zeitstempel

Beschreibung

date(string $format, ?int $timestamp = null): string

Gibt einen formatierten String anhand eines vorzugebenden Musters zurück. Dabei wird entweder der angegebene Unix-Zeitstempel timestamp verwendet oder die gegenwärtige Zeit, wenn kein Zeitstempel angegegeben wird. Mit anderen Worten ausgedrückt: Der Parameter timestamp ist optional und wird mit dem Wert der Funktion time() vorbelegt.

Warnung

Unix-Zeitstempel berücksichtigen keine Zeitzonen. Mit der Klasse DateTimeImmutable und ihrer Formatierungsmethode DateTimeInterface::format() können Datums- und Zeitangaben mit einer angehängten Zeitzone formatiert werden.

Parameter-Liste

format

Von DateTimeInterface::format() akzeptiertes Format.

timestamp

Der optionale Parameter timestamp ist ein Unix-Timestamp als int oder die aktuelle lokale Zeit, wenn timestamp nicht übergeben wurde oder null ist. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt eine formatierte Datums-Zeichenkette zurück. Falls ein nicht-numerischer Wert als timestamp übergeben wird, wird false zurückgegeben und ein Fehler der Stufe E_WARNING erzeugt.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert einen Fehler der Stufe E_WARNING, wenn die Zeitzone ungültig ist. Siehe auch date_default_timezone_set()

Changelog

Version Beschreibung
8.0.0 timestamp ist jetzt nullbar.

Beispiele

Beispiel #1 date()-Beispiele

<?php
// Die Standard-Zeitzone setzen, die verwendet werden soll.
date_default_timezone_set('UTC');

// Gibt etwas aus wie: Monday
echo date("l");

// Gibt etwas aus wie: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Gibt aus: July 1, 2000 ist ein Saturday
echo "July 1, 2000 ist ein " date("l"mktime(000712000));

/* Verwende die Konstanten im Format-Parameter */
// Gibt etwas aus wie: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC822);

// Gibt etwas aus wie: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(000712000));
?>

Um zu verhindern, dass ein erkanntes Zeichen im Formatstring ersetzt wird, sollte dieses Zeichen mit einem vorangestellten Backslash maskiert werden. Ist das Zeichen mit dem Backslash bereits eine spezielle Zeichenfolge, muss dieser Backslash ebenso maskiert werden.

Beispiel #2 Maskieren von Zeichen in date()

<?php
// Gibt etwas ähnliches aus wie: Wednesday the 15th
echo date('l \t\h\e jS');
?>

Es ist möglich, date() und mktime() gleichzeitig zu verwenden, um Datumsangaben in der Zukunft oder der Vergangenheit zu bestimmen.

Beispiel #3 date() und mktime()-Beispiele

<?php
$morgen        
mktime(000date("m")  , date("d")+1date("Y"));
$letztermonat  mktime(000date("m")-1date("d"),   date("Y"));
$naechstesjahr mktime(000date("m"),   date("d"),   date("Y")+1);
?>

Hinweis:

Dieses Vorgehen kann zu verlässlicheren Ergebnissen führen, als simples addieren oder subtrahieren der Anzahl von Sekunden in Tagen oder Monaten zu einem Zeitstempel, da Sommer- und Winterzeit berücksichtigt werden.

Es folgen einige Beispiele zur date()-Formatierung. Es ist zu beachten, dass alle anderen Zeichen maskiert werden sollten, da alle Zeichen, die im Augenblick eine spezielle Bedeutung haben, unerwünschte Resultate liefern. Bei allen weiteren Zeichen kann es durchaus möglich sein, dass diesen in zukünftigen PHP-Versionen eine Bedeutung zukommt. Beim Maskieren sollte darauf geachtet werden, einfache Anführungszeichen zu benutzen, damit Zeichenfolgen wie zum Beispiel \n zu keinem Zeilenumbruch führen.

Beispiel #4 date()-Formatierungen

<?php
// Angenommen, heute ist der 10. März 2001, 17:16:18 Uhr und wir
// befinden uns in der Zeitzone Mountain Standard Time (MST)

$heute date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$heute date("m.d.y");                         // 03.10.01
$heute date("j, n, Y");                       // 10, 3, 2001
$heute date("Ymd");                           // 20010310
$heute date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$heute date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$heute date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$heute date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$heute date("H:i:s");                         // 17:16:18
$heute date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (Das MySQL DATETIME Format)
?>

Um Datumsangaben in anderen Sprachen auszugeben, kann IntlDateFormatter::format() statt date() verwendet werden.

Anmerkungen

Hinweis:

Um einen Zeitstempel aus einer Textrepräsentation eines Datums zu erzeugen, kann die Funktion strtotime() verwendet werden. Einige Datenbanken haben außerdem Funktionen, mit denen ihre Datumsformate in Zeitstempel konvertiert werden können (wie z.B. die Funktion » UNIX_TIMESTAMP von MySQL).

Tipp

Der Zeitstempel des Verarbeitungsbeginns der HTTP-Anfrage wird in $_SERVER['REQUEST_TIME'] bereitgestellt.

Siehe auch

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top