Hora do PHP

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(): intLinguagem 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(); // 1626752728Linguagem 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:47amLinguagem de código:  PHP  ( php )

A date()função possui dois parâmetros.

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

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *