W3docs

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 classe DateTime, ou date() junto com date_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): array

O 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 (1 se sim, 0 se não, -1 se 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 adicione 1 para obter um mês legível. O ano (índice 5) conta anos desde 1900, portanto adicione 1900 para 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:00

Ao 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.

Prática

Prática
Qual é a função de localtime() no PHP?
Qual é a função de localtime() no PHP?
Was this page helpful?