Resumo : neste tutorial, você aprenderá como trabalhar com a time()
função PHP para obter o carimbo de data/hora atual no fuso horário local.
Introdução aos carimbos de data/hora Unix
Os computadores armazenam uma data e hora como um carimbo de data/hora UNIX ou, abreviadamente, um carimbo de data/hora.
Um carimbo de data / hora é um número inteiro que se refere ao número de segundos entre 1970-01-01 00:00:00 UTC (Época) e a data e hora a serem armazenadas.
Os computadores armazenam datas e horas como carimbos de data/hora porque é mais fácil manipular um número inteiro. Por exemplo, para adicionar um dia a um carimbo de data/hora, basta adicionar o número de segundos ao carimbo de data/hora.
PHP fornece algumas funções úteis que manipulam carimbos de data/hora de maneira eficaz.
Obtendo a hora atual
Para obter a hora atual, você usa a time()
função:
function time(): int
Linguagem de código: PHP ( php )
A time()
função retorna o carimbo de data/hora UNIX atual desde a Época (1º de janeiro de 1970 00:00:00 GMT). Por exemplo:
<?php
echo time(); // 1626752728
Linguagem de código: PHP ( php )
O valor de retorno é um número inteiro grande que representa o número de segundos desde a época. Para tornar o tempo legível por humanos, você usa a date()
função. Por exemplo:
<?php
$current_time = time();
echo date('Y-m-d g:ia', $current_time) . '<br>';
Linguagem de código: PHP ( php )
Saída:
2021-07-13 5:47am
Linguagem de código: PHP ( php )
A date()
função possui dois parâmetros.
- O primeiro parâmetro especifica o formato de data e hora. Aqui está uma lista completa de formatos válidos de data e hora .
- O segundo parâmetro é um número inteiro que especifica o carimbo de data/hora.
Como a time()
função retorna um carimbo de data/hora, você pode adicionar segundos a ela.
Adicionando/subtraindo de um carimbo de data/hora
O exemplo a seguir mostra como adicionar uma semana à hora atual:
<?php
$current_time = time();
// 7 days later
$one_week_later = $current_time + 7 * 24 * 60 * 60;
echo date('Y-m-d g:ia',$one_week_later);
Linguagem de código: PHP ( php )
Neste exemplo, adicionamos 7 dias * 24 horas * 60 minutos * 60 segundos à hora atual.
Além disso, você pode representar uma hora no passado subtraindo um número de segundos da hora atual. Por exemplo:
<?php
$current_time = time();
// 1 day ago
$yesterday = $current_time - 24 * 60 * 60;
echo date('Y-m-d g:ia',$yesterday);
Linguagem de código: PHP ( php )
fuso horário
Por padrão, a time()
função retorna a hora atual no fuso horário especificado no arquivo de configuração do PHP (php.ini).
Para obter o fuso horário atual, você pode usar a date_default_timezone_get()
função:
<?php
echo echo date_default_timezone_get();
Linguagem de código: PHP ( php )
Para definir um fuso horário específico, você usa o arquivo date_default_timezone_set()
. É recomendado que você use o fuso horário UTC.
O seguinte mostra como usar a date_default_timezone_set()
função para definir o fuso horário atual para o fuso horário UTC:
<?php
date_default_timezone_set('UTC');
Linguagem de código: PHP ( php )
Fazendo um carimbo de data/hora Unix
Para criar um carimbo de data/hora Unix, você usa a mktime()
função:
mktime(
int $hour,
int|null $minute = null,
int|null $second = null,
int|null $month = null,
int|null $day = null,
int|null $year = null
): int|false
Linguagem de código: PHP ( php )
A mktime()
função retorna um carimbo de data/hora Unix com base em seus argumentos. Se você omitir um argumento, mktime()
a função usará o valor atual de acordo com a data e hora locais.
O exemplo a seguir mostra como usar a mktime()
função para mostrar que 13 de julho de 2020 é uma terça-feira:
<?php
echo 'July 13, 2021 is on a ' . date('l', mktime(0, 0, 0, 7, 13, 2021));
Linguagem de código: PHP ( php )
Resumo
- Use a
time()
função para retornar o carimbo de data/hora atual desde a época no fuso horário local. - Use a
date_default_timezone_set()
função para definir um fuso horário específico. - Use a
date()
função para formatar o carimbo de data/hora. - Use
mktime()
a função para criar um carimbo de data/hora com base no ano, mês, dia, hora, minuto e segundo.