Como obter a data e hora atual em PHP

  1. Utilize date() and time() Function to Get the Current Date and Time in PHP
  2. Utilize DateTime Objeto para obter a data e hora atual em PHP

Neste artigo, vamos introduzir métodos para obter a data e hora atuais em PHP.

  • Utilizando a função date() e time().
  • Utilizando o objeto DateTime.

Utilize date() and time() Function to Get the Current Date and Time in PHP

Poderíamos utilizar funções embutidas date() e time() para obter as atuais date e time em PHP. Estas funções exibem a data e a hora atuais, independentemente do fuso horário. A sintaxe correta para utilizar estas duas funções é a seguinte.

date($format, $timestamp);

A função embutida date() tem dois parâmetros. Os detalhes de seus parâmetros são os seguintes

Parâmetros Descrição
$format obrigatório Formato da data a ser exibida. Tem várias variações. Deve ser um string.
$timestamp opcional Timestamp para obter a data. Se for omitida, então a data atual é devolvida.

Ela retorna a data que é definida de acordo com o formato especificado.

time();

A função time() não aceita parâmetros. Ela retorna o timestamp atual do PHP. O carimbo de data/hora é o número de segundos calculado desde a época do Unix.

O programa abaixo mostra como obter a data e hora atuais, independentemente do fuso horário.

<?php
$DateAndTime = date('m-d-Y h:i:s a', time());  
echo "The current date and time are $DateAndTime.";
?>

O formato 'm-d-Y h:i:s a' especifica a data retornada com valor de mês, dia e ano de 4 dígitos, e o hora em horas, minutos e segundos.

Resultado:

The current date and time are 05-20-2020 05:44:03 pm.

Uma coisa a ser observada aqui é que o time não é definido de acordo com algum fuso horário. É a hora exibida utilizando o carimbo de horário Unix. Se você quiser verificar o time atual do PHP com base em seu fuso horário, você precisa definir o fuso horário manualmente.

Por exemplo, se você quiser verificar o hora atual em Amsterdã, você tem que definir o fuso horário para Amsterdã manualmente. Para este propósito, a função PHP date_default_timezone_set() é utilizada. A sintaxe correta para utilizar esta função é a seguinte

date_default_timezone_set($timezone);

Ele aceita apenas um parâmetro.

Parâmetros Descrição
$timezone obrigatório É um string que identifica a região para a qual desejamos definir o fuso horário. Você pode verificar a lista de fusos horários suportados aqui.

Esta função retorna um valor de bool. Se o fuso horário for definido com sucesso, ele retorna true; caso contrário, ele retorna false.

O programa abaixo exibirá a hora após a definição do fuso horário.

<?php
date_default_timezone_set('Europe/Amsterdam');    
$DateAndTime = date('m-d-Y h:i:s a', time());  
echo "The current date and time in Amsterdam are $DateAndTime.\n";
date_default_timezone_set('America/Toronto');    
$DateAndTime2 = date('m-d-Y h:i:s a', time());  
echo "The current date and time in Toronto are $DateAndTime2.";
?>

Resultado:

The current date and time in Amsterdam are 05-20-2020 08:08:42 pm.
The current date and time in Toronto are 05-20-2020 02:08:42 pm.

Utilize DateTime Objeto para obter a data e hora atual em PHP

Em PHP, a classe DateTime é utilizada para lidar com os problemas relacionados com a data e a hora. A função format() desta classe exibe a data e a hora em um formato especificado.

Primeiro criaremos um objeto DateTime e depois chamaremos a função format() para exibir a data e a hora.

$ObjectName = new DateTime();
$ObjectName->format($format); 

A função format() aceita um parâmetro.

Parâmetros Descrição
$format obrigatório Formato da data e hora. Deve ser um string.

O programa de exemplo que exibe a data e a hora atuais é o seguinte.

<?php
$Object = new DateTime();  
$DateAndTime = $Object->format("d-m-Y h:i:s a");  
echo "The current date and time are $DateAndTime.";
?>

A saída é a data e hora com o formato especificado. A hora exibida é a hora calculada desde a época do Unix.

Resultado:

The current date and time are 20-05-2020 06:21:06 pm.

Se você quiser verificar o tempo de acordo com um fuso horário específico, você terá que definir o fuso horário manualmente. Para este fim, é utilizada a função PHP embutida da classe DateTime setTimezone(). A sintaxe correta para utilizar esta função é a seguinte.

$ObjectName = new DateTime();
$ObjectName->setTimezone(DateTimezone $timezone); 

A função setTimezone() aceita apenas um parâmetro. Ela retorna um objeto DateTime sobre o sucesso e False sobre o fracasso.

Parâmetro Descrição
$timezone obrigatório É um objeto DateTimezone que especifica o fuso horário. Você pode verificar a lista de fusos horários suportados aqui.

O programa de exemplo que exibe o tempo de acordo com um fuso horário específico é o seguinte.

<?php
$Object = new DateTime();  
$Object->setTimezone(new DateTimeZone('Europe/Amsterdam'));
$DateAndTime = $Object->format("d-m-Y h:i:s a");  
echo "The current date and time in Amsterdam are $DateAndTime.\n";
$Object->setTimezone(new DateTimeZone('America/Toronto'));
$DateAndTime = $Object->format("d-m-Y h:i:s a");  
echo "The current date and time in Toronto are $DateAndTime.";
?>

Resultado:

The current date and time in Amsterdam are 20-05-2020 08:43:02 pm.
The current date and time in Toronto are 20-05-2020 02:43:02 pm.

Artigo relacionado - PHP Date

  • Como adicionar dias em PHP
  • Artigo relacionado - PHP DateTime