Advertisement
  1. Code
  2. PHP

Formatieren des aktuellen Datums und der aktuellen Uhrzeit in PHP

by
Read Time:12 minsLanguages:

German (Deutsch) translation by Ines Willenbrock (you can also view the original English article)

Oft möchten Sie mit Datumsangaben und Zeiten arbeiten, wenn Sie Websites entwickeln. Sie müssen z. B. das letzte geänderte Datum in einem Beitrag anzeigen oder erwähnen, wie lange her es ist, das ein Leser einen Kommentar geschrieben hat. Möglicherweise müssen Sie auch einen Countdown der Tage bis zu einem besonderen Ereignis anzeigen.

Glücklicherweise kommt PHP mit einigen eingebauten Datums- und Uhrzeitfunktionen, die uns helfen werden, all das und viel mehr recht einfach zu tun.

In diesem Tutorial erfahren Sie, wie Sie das aktuelle Datum und die aktuelle Uhrzeit in PHP formatieren. Außerdem erfahren Sie, wie Sie den Zeitstempel aus einer Datumszeichenfolge abrufen und verschiedene Datumsangaben hinzufügen und subtrahieren.

Abrufen von Datum und Uhrzeit im Zeichenfolgenformat

date($format, $timestamp) ist eine der am häufigsten verwendeten Datums- und Uhrzeitfunktionen, die in PHP verfügbar sind. Sie nimmt das gewünschte Ausgabeformat für das Datum als ersten Parameter und eine ganze Zahl als Zeitstempelwert, der in das angegebene Datumsformat konvertiert werden muss. Der zweite Parameter ist optional, und wenn er ausgelassen wird, wird die Ausgabe das aktuelle Datum und die aktuelle Uhrzeit im Zeichenfolgenformat basierend auf dem Wert von $format geschehen.

Der Parameter $format akzeptiert eine Reihe von Zeichen als gültige Werte. Einige dieser Zeichen haben eine einfache Bedeutung: Y gibt Ihnen die vollständige numerische Darstellung des Jahres mit 4 Ziffern (2018), und y gibt Ihnen nur die letzten beiden Ziffern des aktuellen Jahres (18). In ähnlicher Weise gibt H Ihnen die Stunde im 24-Stunden-Format mit führenden Nullen, aber h gibt Ihnen die Stunde im 12-Stunden-Format mit führenden Nullen.

Hier sind einige der häufigsten Datumsformatzeichen und ihre Werte.

Zeichen Bedeutung Beispiel
d Tag des Monats mit führenden Nullen 03 oder 17
j Tag des Monats ohne führende Nullen 3 oder 17
D Tag der Woche als Abkürzung aus drei Buchstaben Mon
l vollständiger Tag der Woche Montag
m Monat als Zahl mit führenden Nullen 09 oder 12
n Monat als Zahl ohne führende Nullen 9 oder 12
M Monat als Abkürzung aus drei Buchstaben Sep
F Vollständiger Monat September
y zweistelliges Jahr 18
Y volles Jahr 2018

Es gibt viele andere Sonderzeichen, um die Ausgabe für die date()-Funktion anzugeben. Weitere Informationen zu Sonderfällen finden Sie in der Tabelle mit den Formatzeichen in der date()-Funktionsdokumentation.

Sehen wir uns jetzt einige praktische Beispiele für die date()-Funktion an. Wir können sie verwenden, um das aktuelle Jahr, den aktuellen Monat, die aktuelle Stunde usw. zu erhalten, oder wir können sie verwenden, um eine vollständige Datumszeichenfolge zu erhalten.

Sie können die date()-Funktion auch verwenden, um die Uhrzeit auszugeben. Hier sind einige der am häufigsten verwendeten Zeitformatzeichen:

Zeichen Bedeutung Beispiel
g Stunden im 12-Stunden-Format ohne führende Nullen 1 oder 12
h Stunden im 12-Stunden-Format mit führenden Nullen 01 oder 12
G Stunden im 24-Stunden-Format ohne führende Nullen 1 oder 13
H Stunden im 24-Stunden-Format mit führenden Nullen 01 oder 13
a am/pm in Kleinschreibung am
A am/pm in Großschreibung AM
i Minuten mit führenden Nullen 09 oder 15
s Sekunden mit führenden Nullen 05 oder 30

Und hier sind einige Beispiele für die Ausgabe formatierter Zeitzeichenfolgen.

Es ist auch wichtig, dass Sie Sonderzeichen maskieren, wenn Sie sie innerhalb Ihrer Datumszeichenfolge verwenden möchten.

Holen Sie sich den Unix-Zeitstempel

Manchmal müssen Sie den Wert des aktuellen Unix-Zeitstempels in PHP abrufen. Dies ist sehr einfach mit Hilfe der time() Funktion. Sie gibt einen Ganzzahlwert zurück, der die Anzahl der Millisekunden beschreibt, die seit dem 1. Januar 1970 um Mitternacht (00:00:00) GMT vergangen sind.

Sie können diese Funktion auch verwenden, um in der Zeit zurück oder voran zu gehen. Um dies zu tun, müssen Sie nur die richtige Anzahl von Sekunden vom aktuellen Wert von time() subtrahieren und dann den resultierenden Wert in die gewünschte Datumszeichenfolge ändern. Hier sind zwei Beispiele:

Eine wichtige Sache, die Sie sich merken sollten, ist, dass der von time() zurückgegebene Zeitstempelwert unabhängig von der Zeitzone ist und die Anzahl der Sekunden seit dem 1. Januar 1970 um 00:00:00 UTC abruft. Dies bedeutet, dass diese Funktion zu einem bestimmten Zeitpunkt den gleichen Wert in den USA, Europa, Indien oder Japan zurückgibt.

Eine andere Möglichkeit, den Zeitstempel für ein bestimmtes Datum zu erhalten, wäre die Verwendung der Funktion mktime($hour, $minute, $second, $month, $day, $year). Wenn alle Parameter weggelassen werden, verwendet diese Funktion nur das aktuelle lokale Datum und die aktuelle Uhrzeit, um den Wert des Zeitstempels zu berechnen. Diese Funktion kann auch mit date() verwendet werden, um nützliche Datums- und Uhrzeitzeichenfolgen zu generieren.

Grundsätzlich kann time() verwendet werden, um zu einem bestimmten Zeitraum zurück oder voran zu gehen, während mktime() nützlich ist, wenn Sie zu einem bestimmten Zeitpunkt wechseln möchten.

Konvertieren einer Datetime-Zeichenfolge in einen Zeitstempel

Die Funktion strtotime($time, [$now = time()]) ist unglaublich hilfreich, wenn Sie unterschiedliche Datums- und Uhrzeitwerte im Zeichenfolgenformat in einen Zeitstempel konvertieren möchten. Die Funktion kann fast alle Arten von Datumszeichenfolgen in Zeitstempel wandeln.

Sie sollten unbedingt die gültigen Zeitformate, Datumsformate, zusammengesetzten Datumszeitformate und relativen Datumszeitformate überprüfen.

Bei relativen Datumszeitformaten kann diese Funktion häufig verwendete Zeichenfolgen problemlos in gültige Zeitstempelwerte konvertieren. Die folgenden Beispiele sollten deutlich machen:

Hinzufügen, Subtrahieren und Vergleichen von Datumsangaben

Es ist möglich, bestimmte Zeiträume zu und von einem Datum hinzuzufügen und zu subtrahieren. Dies kann mit Hilfe der date_add() und date_sub() Funktionen erfolgen. Sie können auch die Funktion date_diff() verwenden, um zwei Datumsangaben zu subtrahieren und die Differenz zwischen ihnen in Bezug auf Jahre, Monate und Tage oder etwas anderes auszugeben.

Im Allgemeinen ist es einfacher, eine solche Datums- und Zeitarithmetik im objektorientierten Stil mit der DateTime-Klasse zu tun, anstatt dies prozedural zu tun. Wir werden diese beiden Stile hier ausprobieren, und Sie können wählen, was Ihnen am besten gefällt.

Bei Verwendung von DateTime::diff() wird das DateTime-Objekt, für das die diff()-Methode aufgerufen wird, vom DateTime-Objekt subtrahiert, das an die diff()-Methode übergeben wird. Wenn Sie prozeduralen Code schreiben, wird der erste Datumsparameter vom zweiten Datumsparameter subtrahiert.

Sowohl die Funktion als auch die Methode geben ein DateInterval()-Objekt zurück, das die Differenz zwischen zwei Datumsangaben darstellt. Dieses Intervall kann so formatiert werden, dass eine bestimmte Ausgabe mit allen in der format()-Methodendokumentation aufgeführten Zeichen ausgegeben wird.

Der Unterschied zwischen objektorientiertem Stil und prozeduralem Stil wird beim Subtrahieren oder Hinzufügen eines Zeitintervalls deutlicher.

Sie können ein neues DateTime-Objekt mithilfe des DateTime()-Konstruktors instanziieren. Ebenso können Sie ein DateInterval-Objekt mithilfe des DateInterval()-Konstruktors instanziieren. Es akzeptiert eine Zeichenfolge als Parameter. Die Intervallzeichenfolge beginnt mit P, was den Punkt bedeutet. Danach können Sie jede Periode mithilfe eines Ganzzahlwerts und des einer bestimmten Periode zugewiesenen Zeichens angeben. Weitere Informationen finden Sie in der DateInterval-Dokumentation.

Hier ist ein Beispiel, das zeigt, wie einfach es ist, Datums- und Uhrzeitangaben in PHP hinzuzufügen oder zu subtrahieren.

Sie können Datumsangaben in PHP auch mit Vergleichsoperatoren vergleichen. Das kann ab und zu nützlich sein. Erstellen wir einen Zähler bis Weihnachten mit den Vergleichsoperatoren und anderen DateTime-Methoden.

Wir begannen mit der Erstellung von zwei DateTime-Objekten, um die aktuelle Zeit und das Datum der diesjährigen Weihnachten zu speichern. Danach lassen wir eine while-Schleife laufen, um das Weihnachtsdatum 2018 um 1 Jahr zu ergänzen, bis das aktuelle Datum kleiner als das Weihnachtsdatum ist. Dies ist hilfreich, wenn der Code am 18. Januar 2024 ausgeführt wird. Die while-Schleife erhöht das Weihnachtsdatum, solange es zum Zeitpunkt der Ausführung dieses Skripts kleiner als das aktuelle Datum ist.

Unser Weihnachtszähler wird nun noch Jahrzehnte ohne Probleme funktionieren.

Zusammenfassung

In diesem Tutorial haben wir gelernt, wie man das aktuelle Datum und die aktuelle Uhrzeit in einem gewünschten Format mit der date()-Funktion ausgibt. Wir haben auch gesehen, dass date() auch verwendet werden kann, um nur das aktuelle Jahr, den Monat usw. zu erhalten. Danach haben wir gelernt, wie man den aktuellen Zeitstempel abholt oder eine gültige DateTime-Zeichenfolge in einen Zeitstempel konvertiert. Schließlich haben wir gelernt, wie man einen Zeitraum von verschiedenen Datumsangaben addiert oder subtrahiert.

Ich habe versucht, die wichtigsten DateTime-Funktionen und -Methoden hier abzudecken. Sie sollten auf jeden Fall einen Blick auf die Dokumentation werfen, um über die Funktionen zu lesen, die nicht im Tutorial behandelt werden. Wenn Sie Fragen haben, zögern Sie nicht, mich in den Kommentaren zu informieren.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.