Padroneggiare PHP Date(): Formattare data e ora come un professionista

17 novembre 2025

PHP’s date() La funzione è uno degli strumenti più potenti e più utilizzati per gestire la formattazione di date e orari nelle applicazioni web. Che si tratti di creare un blog, una piattaforma di e-commerce o una dashboard, visualizzare le date in modo intuitivo è fondamentale. In questa guida completa,
approfondiremo il
date() funzione, approfondirne la sintassi, i specificatori di formato, gli esempi pratici, le migliori pratiche e le insidie più comuni.

Che cos'è la funzione Date() di PHP?

IL date() La funzione in PHP formatta una data e un'ora locali in base a una stringa di formato specificata. Restituisce una stringa che rappresenta la data e l'ora formattate.

Sintassi di base

php

string date(string $format, ?int $timestamp = null)

  • Formato $: Una stringa contenente specificatori di formato (ad esempio, Y, M, d).
  • $timestamp: Timestamp Unix facoltativo. Se omesso, viene utilizzata l'ora corrente.

Nota: A partire da PHP 8.0, il secondo parametro è nullabile (?int).

Principali specificatori di formato data in PHP

Ecco una tabella di riferimento rapido dei caratteri di formattazione più comunemente utilizzati:

SpecificatoreDescrizioneEsempio di output
YAnno a 4 cifre2026
yAnno a 2 cifre25
MMese (01–12)11
nMese senza zeri iniziali (1–12)11
FNome completo del mesenovembre
MNome abbreviato del mese (3 lettere)novembre
dGiorno del mese con zeri iniziali17
jGiorno senza zeri iniziali17
lNome completo dei giorni ferialiLunedì
DGiorno feriale breve (3 lettere)Lun
HFormato 24 ore (00–23)11
hFormato a 12 ore (01–12)11
iMinuti con zeri iniziali37
SSecondi con zeri iniziali45
UNMaiuscolo AM/PMAM
a"am" e "pm" in minuscolosono
TAbbreviazione del fuso orarioIST
cFormato ISO 860117 novembre 2026, ore 11:37:45 +05:30
rFormato RFC 2822
Lunedì, 17 novembre 2026, ore 11:37:45
+0530

Esempi di base sul formato delle date in PHP

1. Data e ora attuali

php

echo data(‘G-m-g H:i:s’); 

// Risultato: 17/11/2026 11:37:45
2. Formato leggibile dall'uomo

php

echo data(‘l, F j, Y \a\t g:i A’); 

// Risultato: lunedì 17 novembre 2026 alle 11:37

Utilizzo \ per sfuggire a caratteri come a così appaiono letteralmente.

3. Data breve

php

echo date('g/m/A'); 

// Data di emissione: 17/11/2026
4. Solo ora

php

echo date('h:i A'); 

// Risultato: 11:37 AM

Lavorare con i timestamp

È possibile formattare qualsiasi timestamp Unix:

php

$timestamp = strtotime('2026-01-01 00:00:00');

echo date('Y-m-d', $timestamp);

// Risultato: 01/01/2026
Abbinare con strtotime()

php

echo date('F j, Y', strtotime('+7 days'));

// Data di emissione: 24 novembre 2026

Gestione dei fusi orari (Importante!)

Per impostazione predefinita, date() utilizza il fuso orario predefinito del server. Impostarlo sempre in modo esplicito:

php

date_default_timezone_set('Asia/Kolkata'); // IST

echo date('A-m-g H:i:s T');

// Risultato: 17 novembre 2026, ore 11:37:45 IST

Migliori pratiche: Imposta il fuso orario all'inizio del file di configurazione o nel punto di ingresso.

Casi d'uso reali per il formato data in PHP

1. Date dei post sul blog

php

$post_date = '2026-11-10 14:30:00';

echo date('M j, Y', strtotime($post_date));

// Risultato: 10 novembre 2026
2. Tempo relativo (“2 ore fa”)

php

funzione timeAgo($timestamp) {

    $diff = time() - $timestamp;

    if ($diff < 60) return "$diff secondi fa";

    if ($diff < 3600) return round($diff/60) . " minuti fa";

    if ($diff < 86400) return round($diff/3600) . " ore fa";

    return date('M j', $timestamp);

}

echo timeAgo(strtotime('2026-11-17 09:00:00'));

// Risultato: 2 ore fa
3. Conto alla rovescia per l'evento

php

$event = strtotime('25/12/2026 00:00:00');

$now = time();

$days_left = floor(($event - $now) / 86400);

echo "Mancano $days_left giorni a Natale!";

// Risultato: Mancano 38 giorni a Natale!

Errori comuni e come evitarli

ProblemaSoluzione
Fuso orario erratoUtilizzare sempre date_default_timezone_set()
Bug simili a quelli dell'anno 2000 con yPreferire Y per l'intero anno
Confusione sugli zeri inizialiUtilizzo j invece di d se non vuoi gli zeri
Problemi legati alle impostazioni localiUtilizzo setlocale() + strftime() per i nomi localizzati
Sarà deprecato in futuro?No! Ma pensa un po'... Data e ora per operazioni complesse

Consigli da esperti

1. Utilizzo Data e ora per esigenze avanzate

2. php

$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata'));

3. echo $dt->format('Y-m-d H:i:s');

4. Date formattate nella cache
Evita di chiamare date() in cicli per migliorare le prestazioni.

5. Verifica la validità dei timestamp di input

6. php

if ($timestamp === false) {

    $timestamp = time();

7. }

8. Internazionalizzazione

9. php

setlocale(LC_TIME, 'hi_IN');

10. echo strftime('%e %B %Y'); // Data in hindi

Bonus: Formati di data in una sola riga

php
// ISO
date('c');

// Formato statunitense
date('m/d/Y h:i A');

// Formato UE
date('d.m.Y H:i');

Conclusione

Masterizzazione date() si tratta di comprenderne il specificatori di formato, gestione dei fusi orari, E integrazione con strtotime(). Mentre Data e ora offre maggiore potenza per scenari complessi, date() rimane leggero, veloce e perfetto per 90% di casi d'uso. Carmatec, un leader Società di sviluppo PHP, sfrutta queste caratteristiche per offrire funzionalità temporali precise, efficienti e affidabili.