timestampinfo.fr
Outils & documentation

LA DOCUMENTATION DU TEMPS

Timestamp en PHP

Utiliser DateTimeImmutable pour convertir et afficher un timestamp sans modifier la date d’origine.

Du timestamp vers UTC

Le préfixe @ construit une date à partir de secondes Unix. DateTimeImmutable garde l’objet d’origine intact quand on change son fuseau.

<?php
$date = new DateTimeImmutable('@1711972800');
echo $date->format('Y-m-d\TH:i:sP');
// 2024-04-01T12:00:00+00:00

Afficher l’heure de Paris

$paris = $date->setTimezone(new DateTimeZone('Europe/Paris'));
echo $paris->format('Y-m-d\TH:i:sP');
// 2024-04-01T14:00:00+02:00

De la date vers le timestamp

$date = new DateTimeImmutable('2024-04-01T14:00:00+02:00');
echo $date->getTimestamp(); // 1711972800

// Horodatage courant en secondes
echo time();

Une entrée en millisecondes

Pour cet exemple positif, utilisez un entier 64 bits et conservez la fraction avec U.u. Le format u attend six chiffres de microsecondes.

$ms = 1711972800123;
$seconds = intdiv($ms, 1000);
$micros = ($ms % 1000) * 1000;
$date = DateTimeImmutable::createFromFormat(
    'U.u', sprintf('%d.%06d', $seconds, $micros)
);
if ($date === false) {
    throw new RuntimeException('Date invalide');
}
echo $date->format('Y-m-d\TH:i:s.uP');

Validez vos entrées avant conversion. getTimestamp() renvoie des secondes entières et ne suffit pas à conserver des microsecondes. L’exemple de division ci-dessus est réservé aux timestamps positifs.

Références

PHP — formats composés · createFromFormat

Ouvrir le convertisseur