Arbeiten mit Datum und Uhrzeit in PHP: Funktionen, Klassen und Beispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Datum und Uhrzeit in PHP: Von den Grundlagen bis zu fortgeschrittenen Techniken



Das Arbeiten mit Datum und Uhrzeit gehört zu den häufigsten Aufgaben in der Webentwicklung. Ob es um die Ausgabe des aktuellen Datums, die Berechnung der Differenz zwischen Ereignissen oder das Speichern von Zeitstempeln in der Datenbank geht – PHP bietet ein leistungsstarkes und flexibles Werkzeugset. In diesem Artikel werden wir die wichtigsten Funktionen, Klassen und Best Practices für die Arbeit mit Datum und Uhrzeit in PHP im Detail behandeln.



Das Material ist sowohl für Anfänger, die gerade mit PHP beginnen, als auch für erfahrene Entwickler nützlich, die ihr Wissen systematisieren möchten.



1. Grundlegende Funktionen: date(), time() und mktime()



Beginnen wir mit den Grundlagen. PHP bietet mehrere eingebaute Funktionen für die Arbeit mit Datumsangaben. Die bekanntesten sind date(), time() und mktime().



Die Funktion time()

Die Funktion time() gibt den aktuellen Unix-Zeitstempel (timestamp) zurück – die Anzahl der Sekunden, die seit dem 1. Januar 1970, 00:00:00 UTC vergangen sind. Dies ist der Basiswert, von dem viele Operationen ausgehen.



echo time(); // Gibt etwas wie 1698765432 aus


Die Funktion date()

Die Funktion date() formatiert das lokale Datum und die lokale Uhrzeit. Der erste Parameter ist der Format-String, der zweite (optional) ist ein timestamp. Wenn der zweite Parameter nicht angegeben wird, wird die aktuelle Zeit verwendet.



// Grundlegende Formateecho date("Y-m-d");          // 2023-10-31echo date("H:i:s");          // 14:30:00echo date("d.m.Y H:i");      // 31.10.2023 14:30echo date("l, j F Y");       // Tuesday, 31 October 2023

// Eigener timestamp$timestamp = mktime(12, 0, 0, 1, 1, 2024);echo date("Y-m-d H:i:s", $timestamp); // 2024-01-01 12:00:00


Beliebte Formatierungszeichen:

  • d – Tag des Monats (01-31)
  • m – Monat (01-12)
  • Y – Jahr im 4-stelligen Format
  • H – Stunden (00-23)
  • i – Minuten (00-59)
  • s – Sekunden (00-59)


Die Funktion mktime()

mktime() erstellt einen timestamp basierend auf den übergebenen Parametern (Stunden, Minuten, Sekunden, Monat, Tag, Jahr). Dies ist nützlich, um den Zeitstempel eines bestimmten Datums zu erhalten.



// Erstellen eines timestamps für den 25. Dezember 2023, 10:30:00$christmas = mktime(10, 30, 0, 12, 25, 2023);echo date("d.m.Y H:i:s", $christmas); // 25.12.2023 10:30:00


2. Objektorientierter Ansatz: Die Klasse DateTime



Obwohl die Funktionen date() und time() einfach sind, haben sie Einschränkungen. Für komplexere Operationen (Datumsvergleiche, Arbeit mit Zeitzonen, Addition/Subtraktion von Intervallen) ist es besser, die Klasse DateTime zu verwenden.



Erstellen von DateTime-Objekten

// Aktuelle Zeit$now = new DateTime();echo $now->format("Y-m-d H:i:s"); // 2023-10-31 14:30:00

// Bestimmtes Datum$date = new DateTime("2024-03-15 08:00:00");echo $date->format("d.m.Y"); // 15.03.2024

// Relative Formate$nextWeek = new DateTime("+1 week");echo $nextWeek->format("Y-m-d");

$lastMonth = new DateTime("first day of last month");echo $lastMonth->format("Y-m-d");


Arbeiten mit Zeitzonen

Einer der Hauptvorteile von DateTime ist die Unterstützung von Zeitzonen.



// Zeitzone bei der Erstellung angeben$moscow = new DateTime("now", new DateTimeZone("Europe/Moscow"));echo $moscow->format("Y-m-d H:i:s"); // Moskauer Zeit

// Zeitzone ändern$newYork = new DateTime("now", new DateTimeZone("America/New_York"));echo $newYork->format("Y-m-d H:i:s"); // New Yorker Zeit

// Liste der verfügbaren Zonen: https://www.php.net/manual/ru/timezones.php


Datumsvergleiche

$date1 = new DateTime("2024-01-01");$date2 = new DateTime("2024-12-31");

if ($date1 < $date2) { echo "Das erste Datum liegt vor dem zweiten";}

// Diff

Blogs

Buchempfehlungen