PHP Snippets

PHP-Unix-Timestamp-Snippets

PHP-Beispiele zum Holen von Unix-Sekunden, Erzeugen von Millisekunden, Formatieren von Timestamps, Umwandeln zwischen DateTime-Objekten und Parsen von Datums-Strings.

Current Unix timestamp (seconds)
time()
Current Unix timestamp (milliseconds)
round(microtime(true) * 1000)
Formatted date from timestamp
date("Y-m-d H:i:s", 1700000000)
Date in specific timezone
date_default_timezone_set("America/New_York");
date("Y-m-d H:i:s", 1700000000);

// Or with DateTime:
$dt = new DateTime();
$dt->setTimestamp(1700000000);
$dt->setTimezone(new DateTimeZone("America/New_York"));
echo $dt->format("Y-m-d H:i:s");
Timestamp from date string
strtotime("2023-11-15 06:13:20 UTC")

Grundlagen zu PHP-Zeitstempeln

PHPs time() gibt ganze Unix-Sekunden zurück. Verwende microtime(true), wenn du Sub-Sekunden-Präzision brauchst oder Unix-Millisekunden für JavaScript-orientierte APIs ableiten willst.

Daten in PHP formatieren

date() formatiert Zeitstempel in der Standard-Serverzeitzone, während gmdate() in UTC formatiert. Für explizite Zeitzonenarbeit verwende DateTime mit DateTimeZone, damit sich Deployments einheitlich verhalten.

Hinweise für den Produktiveinsatz von PHP

PHP-Anwendungen laufen oft auf Shared Hosting, in Containern oder Workern mit unterschiedlichen Standardzeitzonen. Behandle die Serverstandardeinstellung als Implementierungsdetail. Speichere Unix-Sekunden oder UTC-DateTime-Werte in persistenten Daten und wähle dann eine DateTimeZone an der Stelle, an der der Zeitstempel für einen Nutzer, Bericht oder eine Integration formatiert wird.

  • Verwende time() für ganze Unix-Sekunden in Controllern, Jobs und einfachen Skripten
  • Verwende microtime(true), wenn du Sekundenbruchteile oder Millisekundenpräzision brauchst
  • Verwende gmdate() für stabile UTC-Formatierung, die die Serverzeitzone ignoriert
  • Verwende DateTimeImmutable für Code, der ein Datum nicht versehentlich verändern soll

FAQ

Enthält time() Millisekunden?
Nein. time() gibt ganze Unix-Sekunden zurück. Verwende microtime(true), wenn du Sekundenbruchteile brauchst oder einen Millisekunden-Zeitstempel berechnen musst.
Warum gmdate() statt date() verwenden?
gmdate() formatiert den Zeitstempel in UTC. date() verwendet die konfigurierte Zeitzone des Servers, die sich zwischen lokaler Entwicklung, Containern und Produktions-Hosting ändern kann.
Wie überprüfe ich eine PHP-Umrechnung?
Wandle denselben Wert mit gmdate('c', $timestamp) um und vergleiche ihn dann mit einem unabhängigen Epoch-Konverter oder einer Datenbank-UTC-Funktion, bevor du ihn in einer Migration verwendest.