W3docs

gmdate()

Scopri la funzione PHP gmdate(): formatta una data e ora UTC/GMT, sintassi, parametri, caratteri di formato, differenze con date() ed esempi eseguibili.

Introduzione

La funzione gmdate() formatta un timestamp Unix come stringa di data e ora leggibile in GMT/UTC, ignorando il fuso orario configurato nel server. È la controparte esclusivamente UTC di date(): entrambe accettano gli stessi caratteri di formato, ma gmdate() restituisce sempre l'orario in Greenwich Mean Time. Questo la rende lo strumento ideale ogni volta che serve un valore indipendente dal fuso orario — per registrare un evento, costruire un header HTTP o memorizzare un timestamp normalizzato che ogni server e client interpreta allo stesso modo.

Questa guida tratta la sintassi, i parametri, i caratteri di formato più comuni, le differenze tra gmdate() e date(), e vari esempi eseguibili.

Sintassi

gmdate(string $format, ?int $timestamp = null): string

Parametri

  • $format (obbligatorio) — Una stringa di caratteri di formato sostituiti con i valori di data/ora corrispondenti. Qualsiasi carattere non riconosciuto come identificatore di formato viene stampato così com'è. Per stampare una lettera letterale che altrimenti sarebbe interpretata, è necessario farla precedere da una barra rovesciata (ad esempio \T).
  • $timestamp (opzionale) — Un timestamp Unix (secondi trascorsi dal 1° gennaio 1970, 00:00:00 UTC). Se omesso o null, viene usato il momento corrente.

La funzione restituisce la data/ora formattata come stringa, sempre espressa in UTC indipendentemente da date_default_timezone_set() o dall'impostazione date.timezone del server.

Caratteri di formato più comuni

Questi sono gli identificatori usati più di frequente. Sono identici a quelli usati da date().

CarattereSignificatoEsempio
YAnno a 4 cifre2026
mMese, 2 cifre con zero iniziale06
dGiorno del mese, 2 cifre04
HOra, formato 24 ore (00–23)05
iMinuti (00–59)45
sSecondi (00–59)57
DGiorno della settimana, testo abbreviatoSun
MMese, testo abbreviatoMar
TAbbreviazione del fuso orarioGMT
USecondi dall'epoca Unix1646372757

Esempi

Esempio 1: Stampare la data e l'ora GMT/UTC correnti

Senza argomento timestamp, gmdate() formatta il momento corrente in UTC.

php— editable, runs on the server

Esempio 2: Formattare la data e l'ora con identificatori personalizzati

Uno schema comune è costruire un timestamp leggibile in stile RFC. Poiché gmdate() è UTC, l'identificatore T stampa sempre GMT.

php— editable, runs on the server

Esempio 3: Formattare un timestamp specifico

Passare un timestamp Unix come secondo argomento per formattare un punto fisso nel tempo invece di "adesso".

php— editable, runs on the server

gmdate() vs date()

date() formatta un timestamp usando il fuso orario locale configurato per lo script, mentre gmdate() formatta sempre in UTC. Dato lo stesso timestamp, le due funzioni restituiscono la stessa stringa solo quando il fuso orario locale è UTC.

<?php

date_default_timezone_set('America/New_York');
$timestamp = 1646372757;

echo date('Y-m-d H:i:s', $timestamp);   // 2022-03-04 00:45:57 (local, UTC-5)
echo "\n";
echo gmdate('Y-m-d H:i:s', $timestamp); // 2022-03-04 05:45:57 (UTC)

Usare gmdate() quando il valore deve essere indipendente dal fuso orario (log, header HTTP Date, risposte API, archiviazione nel database). Usare date() quando si visualizza un orario all'utente nel suo fuso locale.

Quando usare gmdate()

  • Logging standardizzato — memorizzare i timestamp in UTC così che le voci provenienti da server in regioni diverse rimangano confrontabili.
  • Header HTTP e caching — header come Expires e Last-Modified devono essere espressi in GMT.
  • API e scambio dati — restituire UTC affinché i client possano convertire in qualsiasi fuso locale in modo affidabile.

Per la gestione orientata agli oggetti delle date con conversione esplicita del fuso orario, preferire le classi DateTime e DateTimeZone. Per costruire i timestamp da passare a gmdate(), vedere gmmktime() (UTC) e mktime() (ora locale).

Conclusione

La funzione gmdate() offre un modo diretto per formattare date e orari in UTC, usando gli stessi caratteri di formato di date() ma sempre ancorata al GMT. Questa guida ne ha illustrato la sintassi, i parametri, i caratteri di formato più comuni, la differenza rispetto a date() e degli esempi pratici per aiutarti a integrarla nei tuoi progetti. Per ulteriori informazioni sul lavoro con le date in PHP, consulta la panoramica PHP Date and Time.

Pratica

Pratica
Qual è lo scopo della funzione gmdate() in PHP?
Qual è lo scopo della funzione gmdate() in PHP?
Was this page helpful?