localtime()
localtime() é uma função PHP que converte um timestamp Unix em um array de valores de hora local, contendo informações como segundo, minuto e hora.
Aviso:
localtime()foi descontinuada no PHP 7.0 e removida no PHP 8.0. Ela não está mais disponível no PHP moderno. Para novo código, use a classeDateTime, oudate()junto comdate_default_timezone_set(). Os exemplos abaixo são mantidos para leitores que precisam manter código legado PHP 5.x/7.x.
localtime() era uma função PHP integrada que decompunha um timestamp Unix nos componentes individuais da data e hora local — segundo, minuto, hora, dia, mês, ano e assim por diante. Ela espelhava a chamada localtime() da biblioteca C e retornava um array de 9 elementos em vez de uma string formatada, o que a tornava útil quando era necessário ler ou calcular campos individuais (por exemplo, "é atualmente um fim de semana?") em vez de imprimir uma data.
Por retornar a hora local, o resultado dependia do fuso horário configurado no servidor. Para tornar a saída previsível entre máquinas, defina o fuso horário explicitamente com date_default_timezone_set() antes de chamá-la.
Sintaxe
<?php
localtime(int $timestamp = time(), bool $associative = false): arrayO parâmetro timestamp é o timestamp Unix que você deseja converter (o padrão é o tempo atual via time()). associative é um Boolean opcional que determina se o array retornado é indexado por nome ou por posição.
Array indexado (padrão)
Se associative for false ou omitido, o array é indexado numericamente e contém estes valores, em ordem:
0: Segundos (0-59).1: Minutos (0-59).2: Horas (0-23).3: Dia do mês (1-31).4: Mês (0-11, onde 0 é janeiro).5: Anos desde 1900.6: Dia da semana (0-6, onde 0 é domingo).7: Dia do ano (0-365).8: Se o Horário de Verão está em vigor (1se sim,0se não,-1se desconhecido).
Atenção: Dois desses campos são fáceis de interpretar incorretamente. O índice de mês 4 é baseado em zero (
0= janeiro,11= dezembro), portanto adicione1para obter um mês legível. O ano (índice 5) conta anos desde 1900, portanto adicione1900para obter o ano calendário.
Array associativo
Se associative for definido como true, as chaves do array são nomeadas conforme os campos da struct tm do C em vez de inteiros, o que torna o resultado autodocumentado:
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)
)Exemplos
<?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);Estes exemplos mostram como você pode usar localtime() para converter timestamps Unix em valores de hora local e ler campos individuais conforme necessário.
O substituto moderno
Como localtime() foi removida no PHP 8, a forma recomendada de decompor um timestamp em suas partes é getdate() (que já retorna um array associativo amigável com mon, year, wday, etc.) ou o DateTime orientado a objetos:
<?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:00Ao contrário de localtime(), getdate() fornece year e mon diretamente (sem a aritmética +1900 ou +1), e DateTime permite formatar ou realizar cálculos de data sem precisar lidar com índices de array.
Veja também
getdate()— o substituto suportado que retorna um array de data com rótulos.mktime()— constrói um timestamp a partir de componentes individuais de hora local (a operação inversa).strtotime()— analisa uma string de data legível em um timestamp.- PHP Date and Time — visão geral das ferramentas de data/hora do PHP.