DateTimeInterface::getTimestamp

DateTimeImmutable::getTimestamp

DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTime::getTimestamp -- date_timestamp_getLiefert den Unix-Zeitstempel

Beschreibung

Objektorientierter Stil

public DateTimeInterface::getTimestamp(): int
public DateTimeImmutable::getTimestamp(): int
public DateTime::getTimestamp(): int

Prozeduraler Stil

Gibt den Unix-Zeitstempel zurück.

Parameter-Liste

Diese Funktion besitzt keine Parameter.

Rückgabewerte

Gibt den Unix-Zeitstempel zurück, der das Datum darstellt.

Fehler/Exceptions

Wenn der Zeitstempel nicht als Integer dargestellt werden kann, wird ein ValueError ausgelöst. Vor PHP 8.0.0 wurde in diesem Fall false zurückgegeben. Wenn DateTimeInterface::format() mit dem Format U verwendet wird, kann der Zeitstempel trotzdem als String abgerufen werden.

Changelog

Version Beschreibung
8.0.0 Diese Funktionen geben bei einem Fehler nicht mehr false zurück.

Beispiele

Beispiel #1 DateTime::getTimestamp()-Beispiel

Objektorientierter Stil

<?php
$date 
= new DateTimeImmutable();
echo 
$date->getTimestamp();
?>

Prozeduraler Stil

<?php
$date 
date_create();
echo 
date_timestamp_get($date);
?>

Oben gezeigte Beispiele erzeugen eine ähnliche Ausgabe wie:

1272509157

Siehe auch

add a note add a note

User Contributed Notes 3 notes

up
36
heiccih at gmail dot com
8 years ago
In 32-bit system the unix timestamp will overflow if the date goes beyond year 2038 and this method will return false. In 64-bit systems this function will still work as intended. For more information please see http://en.wikipedia.org/wiki/Year_2038_problem.
up
36
Justin Heesemann
12 years ago
Note that for dates before the unix epoch getTimestamp() will return false, whereas format("U") will return a negative number.

<?php
$date
= new DateTime("1899-12-31");
// "-2209078800"
echo $date->format("U");
// false
echo $date->getTimestamp();
?>
up
-1
Julien Bornstein
2 years ago
Please note that DateTime::gettimestamp() will return an integer, but DateTime::format("U") will return a string.

timestamp must always be typed as int because in PHP, timestamps are integers.

eg:
- strftime ( string $format [, int $timestamp = time() ] ) : string
- time() // return int
- ...

So IMHO, as PHP becomes more and more a typed language, avoid using DateTime::format("U") to avoid this kind of errors "strftime() expects parameter 2 to be int, string given"
To Top