PHP Snippets

Extraits de timestamp Unix en PHP

Exemples PHP pour obtenir des secondes Unix, générer des millisecondes, formater des timestamps, convertir entre objets DateTime et parser des chaînes de date.

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")

Bases des horodatages en PHP

Le time() de PHP renvoie des secondes Unix entières. Utilisez microtime(true) quand vous avez besoin d'une précision infra-seconde ou voulez dériver des millisecondes Unix pour des API orientées JavaScript.

Formater les dates en PHP

date() formate les horodatages dans le fuseau par défaut du serveur, tandis que gmdate() formate en UTC. Pour un travail explicite sur les fuseaux, utilisez DateTime avec DateTimeZone afin que les déploiements se comportent de manière cohérente.

Notes de production pour PHP

Les applications PHP tournent souvent sur de l'hébergement mutualisé, des conteneurs ou des workers ayant des fuseaux par défaut différents. Traitez le fuseau par défaut du serveur comme un détail d'implémentation. Stockez des secondes Unix ou des valeurs DateTime UTC dans les données persistantes, puis choisissez un DateTimeZone au point où l'horodatage est formaté pour un utilisateur, un rapport ou une intégration.

  • Utilisez time() pour des secondes Unix entières dans les contrôleurs, tâches et scripts simples
  • Utilisez microtime(true) quand vous avez besoin de fractions de seconde ou d'une précision à la milliseconde
  • Utilisez gmdate() pour un formatage UTC stable qui ignore le fuseau du serveur
  • Utilisez DateTimeImmutable pour du code qui ne doit pas modifier une date par accident

FAQ

time() inclut-il les millisecondes ?
Non. time() renvoie des secondes Unix entières. Utilisez microtime(true) si vous avez besoin de fractions de seconde ou si vous devez calculer un horodatage en millisecondes.
Pourquoi utiliser gmdate() plutôt que date() ?
gmdate() formate l'horodatage en UTC. date() utilise le fuseau configuré du serveur, qui peut changer entre le développement local, les conteneurs et l'hébergement de production.
Comment vérifier une conversion PHP ?
Convertissez la même valeur avec gmdate('c', $timestamp), puis comparez-la à un convertisseur d'epoch indépendant ou à une fonction UTC de base de données avant de l'utiliser dans une migration.