PHP Snippets

Frammenti di timestamp Unix in PHP

Esempi PHP per ottenere secondi Unix, generare millisecondi, formattare timestamp, convertire tra oggetti DateTime e parsare stringhe di data.

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

Basi dei timestamp in PHP

Il time() di PHP restituisce secondi Unix interi. Usa microtime(true) quando ti serve precisione sotto il secondo o vuoi derivare millisecondi Unix per API orientate a JavaScript.

Formattare le date in PHP

date() formatta i timestamp nel fuso predefinito del server, mentre gmdate() formatta in UTC. Per un lavoro esplicito sui fusi, usa DateTime con DateTimeZone così i deployment si comportano in modo coerente.

Note di produzione per PHP

Le applicazioni PHP spesso girano su hosting condiviso, container o worker con fusi predefiniti diversi. Tratta il default del server come un dettaglio implementativo. Memorizza secondi Unix o valori DateTime UTC nei dati persistenti, poi scegli un DateTimeZone nel punto in cui il timestamp viene formattato per un utente, un report o un'integrazione.

  • Usa time() per secondi Unix interi in controller, job e script semplici
  • Usa microtime(true) quando ti servono frazioni di secondo o precisione al millisecondo
  • Usa gmdate() per una formattazione UTC stabile che ignora il fuso del server
  • Usa DateTimeImmutable per codice che non deve mutare accidentalmente una data

FAQ

time() include i millisecondi?
No. time() restituisce secondi Unix interi. Usa microtime(true) se hai bisogno di frazioni di secondo o se devi calcolare un timestamp in millisecondi.
Perché usare gmdate() invece di date()?
gmdate() formatta il timestamp in UTC. date() usa il fuso orario configurato del server, che può cambiare tra sviluppo locale, container e hosting di produzione.
Come verifico una conversione PHP?
Converti lo stesso valore con gmdate('c', $timestamp), poi confrontalo con un convertitore di epoch indipendente o una funzione UTC del database prima di usarlo in una migrazione.