W3docs

localtime()

localtime() è una funzione PHP che converte un timestamp Unix in un array di valori della data e dell'ora locali, con informazioni come secondi e minuti.

Attenzione: localtime() è stata deprecata in PHP 7.0 e rimossa in PHP 8.0. Non è più disponibile nelle versioni moderne di PHP. Per il nuovo codice, usa la classe DateTime, oppure date() insieme a date_default_timezone_set(). Gli esempi seguenti sono mantenuti per i lettori che gestiscono codice legacy PHP 5.x/7.x.

localtime() era una funzione PHP integrata che scomponeva un timestamp Unix nei singoli componenti della data e dell'ora locale — secondo, minuto, ora, giorno, mese, anno e così via. Rispecchiava la chiamata localtime() della libreria C e restituiva un array di 9 elementi anziché una stringa formattata, il che la rendeva utile quando era necessario leggere o calcolare campi singoli (ad esempio, "è attualmente un fine settimana?") piuttosto che stampare una data.

Poiché restituiva l'ora locale, il risultato dipendeva dal fuso orario configurato sul server. Per rendere l'output prevedibile tra macchine diverse, imposta esplicitamente il fuso orario con date_default_timezone_set() prima di chiamarla.

Sintassi

<?php

localtime(int $timestamp = time(), bool $associative = false): array

Il parametro timestamp è il timestamp Unix da convertire (il valore predefinito è l'ora corrente tramite time()). associative è un booleano opzionale che determina se l'array restituito è indicizzato per nome o per posizione.

Array indicizzato (predefinito)

Se associative è false o omesso, l'array è indicizzato numericamente e contiene questi valori, nell'ordine:

  • 0: Secondi (0-59).
  • 1: Minuti (0-59).
  • 2: Ore (0-23).
  • 3: Giorno del mese (1-31).
  • 4: Mese (0-11, dove 0 è gennaio).
  • 5: Anni dal 1900.
  • 6: Giorno della settimana (0-6, dove 0 è domenica).
  • 7: Giorno dell'anno (0-365).
  • 8: Se l'ora legale è in vigore (1 se sì, 0 se no, -1 se sconosciuto).

Attenzione: Due di questi campi sono facili da interpretare erroneamente. L'indice del mese 4 è a base zero (0 = gennaio, 11 = dicembre), quindi aggiungi 1 per un mese leggibile. L'anno (indice 5) conta gli anni dal 1900, quindi aggiungi 1900 per ottenere l'anno solare.

Array associativo

Se associative è impostato su true, le chiavi dell'array sono denominate in base ai campi della struct tm del C anziché a interi, il che rende il risultato autodocumentante:

array(
  'tm_sec'   => ...,  // seconds (0-59)
  'tm_min'   => ...,  // minutes (0-59)
  'tm_hour'  => ...,  // hours (0-23)
  'tm_mday'  => ...,  // day of the month (1-31)
  'tm_mon'   => ...,  // month (0-11)
  'tm_year'  => ...,  // years since 1900
  'tm_wday'  => ...,  // day of the week (0-6, Sunday = 0)
  'tm_yday'  => ...,  // day of the year (0-365)
  'tm_isdst' => ...,  // daylight saving flag (1, 0, or -1)
)

Esempi

<?php

// Get the current local time
$now = time();
$localtime = localtime($now);
print_r($localtime);

// Get the local time for a specific Unix timestamp
$timestamp = 1646563200; // March 5, 2022, 12:00:00 AM UTC
$localtime = localtime($timestamp);
print_r($localtime);

// Get the local time as an associative array
$now = time();
$localtime = localtime($now, true);
echo "The current year is " . ($localtime['tm_year'] + 1900);

Questi esempi mostrano come puoi usare localtime() per convertire timestamp Unix in valori dell'ora locale e leggere singoli campi secondo le necessità.

Il sostituto moderno

Poiché localtime() è stata rimossa in PHP 8, il modo consigliato per scomporre un timestamp nelle sue parti è getdate() (che restituisce già un comodo array associativo con mon, year, wday, ecc.) oppure DateTime orientato agli oggetti:

<?php

date_default_timezone_set('UTC');

$parts = getdate(1646438400); // 2022-03-05 00:00:00 UTC
echo $parts['mday'] . '-' . $parts['mon'] . '-' . $parts['year']; // 5-3-2022

$dt = new DateTime('@1646438400');
echo $dt->format('Y-m-d H:i:s'); // 2022-03-05 00:00:00

A differenza di localtime(), getdate() fornisce direttamente year e mon (senza l'aritmetica +1900 o +1), e DateTime consente di formattare o eseguire calcoli sulle date senza dover gestire gli indici dell'array.

Vedi anche

  • getdate() — il sostituto supportato che restituisce un array di date con etichette.
  • mktime() — costruisce un timestamp dai singoli componenti dell'ora locale (l'operazione inversa).
  • strtotime() — analizza una stringa di data in formato leggibile e la converte in un timestamp.
  • PHP Date and Time — panoramica degli strumenti PHP per data/ora.

Pratica

Pratica
Qual è la funzione di localtime() in PHP?
Qual è la funzione di localtime() in PHP?
Was this page helpful?