⏰ Gestione di Data e Ora in PHP
Lavorare con la data e l'ora è essenziale in quasi tutte le applicazioni web (log, timestamp, scadenze). PHP fornisce diverse funzioni potenti per recuperare, formattare e manipolare questi valori.
1. Il Concetto di Timestamp (Unix Time)
Il Timestamp (o Unix Time) è un numero intero che rappresenta i secondi trascorsi dal 1° gennaio 1970. È il modo in cui i sistemi informatici memorizzano il tempo.
- La funzione
time()restituisce il timestamp corrente.
<?php$secondi = time();echo "Timestamp corrente: " . $secondi;// Output: Timestamp corrente: 1730000000?>
2. Formattare la Data con date()
La funzione date() converte il timestamp (o l'ora attuale) in un formato leggibile, utilizzando una stringa di formato.
<?php// Formato breve (gg/mm/aaaa)echo "Data: " . date("d/m/Y") . "<br>";// Formato completoecho "Data completa: " . date("l, d F Y H:i:s");?>
3. Codici di Formattazione Comuni
| Codice | Descrizione | Esempio |
|---|---|---|
| d | Giorno del mese (2 cifre) | 01–31 |
| m | Mese (2 cifre) | 01–12 |
| Y | Anno (4 cifre) | 2025 |
| H | Ora (24h) | 00–23 |
| i | Minuti | 00–59 |
| s | Secondi | 00–59 |
| l | Giorno della settimana | Monday |
4. Fuso Orario (Timezone)
Per mostrare la data corretta è fondamentale impostare il fuso orario con date_default_timezone_set().
<?php// Imposta il fuso orario su Romadate_default_timezone_set("Europe/Rome");echo "Ora attuale a Roma: " . date("H:i:s");?>
LABORATORIO
Visualizzare l'ora in diversi paesi del mondo
In questo laboratorio imparerai a mostrare l'ora locale in varie città del mondo utilizzando la funzione date_default_timezone_set() e la formattazione con date().
- Editor di codice PHP (VS Code, PhpStorm, Notepad++)
- Server locale o remoto con PHP (XAMPP, MAMP, Laragon)
- Browser web per visualizzare il risultato
1 Creare il file principale
Crea un file chiamato orario-mondiale.php e incolla il seguente codice:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Laboratorio - Ora nel mondo</title>
</head>
<body>
<h2>🌍 Ora locale in diverse città del mondo</h2>
<?php
$citta = [
"Roma" => "Europe/Rome",
"Londra" => "Europe/London",
"New York" => "America/New_York",
"Tokyo" => "Asia/Tokyo",
"Sydney" => "Australia/Sydney",
"Dubai" => "Asia/Dubai"
];
echo "<table border='1' cellpadding='6' cellspacing='0'>";
echo "<tr><th>Città</th><th>Fuso Orario</th><th>Ora Locale</th></tr>";
foreach ($citta as $nome => $zona) {
date_default_timezone_set($zona);
echo "<tr>";
echo "<td><b>$nome</b></td>";
echo "<td>$zona</td>";
echo "<td>" . date("l, d M Y H:i:s") . "</td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
2 Personalizzare il formato
Prova a modificare la formattazione per visualizzare la data in modo diverso, ad esempio solo l'ora locale:
<?php
echo date("H:i"); // Mostra solo ore e minuti
?>
3 Aggiungere nuove città
Puoi facilmente aggiungere altre città modificando l'array $citta:
$citta["Los Angeles"] = "America/Los_Angeles";
$citta["Mosca"] = "Europe/Moscow";
$citta["Città del Capo"] = "Africa/Johannesburg";
4 Test e analisi
- Salva il file e aprilo nel browser.
- Controlla l'ora locale di ciascuna città.
- Prova a cambiare il fuso orario predefinito con
date_default_timezone_set("UTC")e osserva le differenze.