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_getRécupère le timestamp Unix

Description

Style orienté objet

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

Style procédural

Récupère le timestamp Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le timestamp Unix représentant la date.

Erreurs / Exceptions

Si l'horodatage ne peut pas être représenté sous la forme d'un entier, une DateRangeError est lancée. Antérieur à PHP 8.3.0, une ValueError était lancé. Et antérieur à PHP 8.0.0, false était retourné dans ce cas. Cependant, l'horodatage peut être récupéré en tant que chaîne de caractères en utilisant DateTimeInterface::format() avec le format U.

Historique

Version Description
8.3.0 L'exception de hors limites est désormais une DateRangeError.
8.0.0 Ces fonctions ne retourne plus false en cas d'échec.

Exemples

Exemple #1 Exemple avec DateTime::getTimestamp()

Style orienté objet

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

Style procédural

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

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1272509157

Pour récupérer l'horodatage avec une précision en millisecondes ou microsecondes, il est possible d'utiliser la fonction DateTimeInterface::format().

Exemple #2 Récupération de l'horodatage avec une précision en millisecondes et microsecondes

Style orienté objet

<?php
$date
= new DateTimeImmutable();
$milli = (int)$date->format('Uv'); // Timestamp in milliseconds
$micro = (int)$date->format('Uu'); // Timestamp in microseconds

echo $milli, "\n", $micro, "\n";
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1674057635586
1674057635586918

Voir aussi

add a note add a note

User Contributed Notes 3 notes

up
37
heiccih at gmail dot com
10 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
33
Justin Heesemann
14 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
-6
Julien Bornstein
4 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