Start · Sprachen · PHP · Referenz · date_timestamp_get

date_timestamp_get

Funktion

Gibt den Unix-Zeitstempel eines <code>DateTimeInterface</code>-Objekts zurück.

seit PHP 5.3.0 Kategorie: date

Signatur

date_timestamp_get(DateTimeInterface $object): int

Beschreibung

date_timestamp_get() ist der prozedurale Stil des Aufrufs DateTime::getTimestamp() bzw. DateTimeImmutable::getTimestamp(). Die Funktion liefert die Anzahl der Sekunden seit dem Unix-Epoch (1. Januar 1970, 00:00:00 UTC) für das übergebene Datums-/Zeit-Objekt.

Sie ist besonders nützlich, wenn man in einem prozeduralen Code-Stil arbeitet und einen DateTimeInterface-Wert in einen einfachen Integer-Zeitstempel umwandeln möchte, etwa um Zeitdifferenzen zu berechnen, Zeitpunkte zu vergleichen oder den Wert in einer Datenbank zu speichern.

Der Rückgabewert kann negativ sein, wenn das Datum vor dem 1. Januar 1970 liegt. Für Zeitstempel außerhalb des 32-Bit-Integer-Bereichs liefert PHP auf 64-Bit-Systemen korrekte 64-Bit-Integer-Werte, sodass kein Jahr-2038-Problem besteht.

Parameter

Name Typ Default Beschreibung
$object Pflicht DateTimeInterface Ein DateTime- oder DateTimeImmutable-Objekt, dessen Unix-Zeitstempel ermittelt werden soll.

Rückgabewert

Typ
int
Beschreibung
Gibt die Anzahl der Sekunden seit dem Unix-Epoch (1970-01-01 00:00:00 UTC) als Ganzzahl zurück. Der Wert kann negativ sein, wenn das Datum vor 1970 liegt.

Beispiele

Aktuellen Unix-Zeitstempel aus einem DateTime-Objekt ermitteln

<?php
$dt = new DateTime('2024-06-15 12:00:00', new DateTimeZone('UTC'));
$timestamp = date_timestamp_get($dt);
echo $timestamp;
// Ausgabe: 1718452800
1718452800

Zeitdifferenz zwischen zwei Daten in Sekunden berechnen

<?php
$start = date_create('2024-01-01 00:00:00', new DateTimeZone('UTC'));
$end   = date_create('2024-01-08 00:00:00', new DateTimeZone('UTC'));

$diffSekunden = date_timestamp_get($end) - date_timestamp_get($start);
$diffTage     = $diffSekunden / 86400;

echo "Differenz: {$diffTage} Tage";
// Ausgabe: Differenz: 7 Tage
Differenz: 7 Tage

Datum vor dem Unix-Epoch (negativer Zeitstempel)

<?php
$dt = new DateTimeImmutable('1960-01-01 00:00:00', new DateTimeZone('UTC'));
$timestamp = date_timestamp_get($dt);
echo $timestamp;
// Ausgabe: -315619200
-315619200

// Wichtig · Fallstricke

Zeitzonenbeachtung: Der zurückgegebene Unix-Zeitstempel ist immer UTC-basiert, unabhängig von der im Objekt gesetzten Zeitzone. Der Zeitstempel beschreibt denselben absoluten Moment in der Zeit, lediglich die Darstellung ändert sich je nach Zeitzone.

Objektorientierter Stil: Alternativ kann direkt die Methode $dt->getTimestamp() aufgerufen werden — beide Varianten sind funktional identisch. date_timestamp_get() ist der prozedurale Wrapper.

64-Bit-Systeme: Auf 64-Bit-Plattformen ist kein Year-2038-Problem vorhanden, da PHP native 64-Bit-Integer verwendet. Auf 32-Bit-Systemen gilt weiterhin der bekannte Wertebereich bis 2038.