Data e Hora Corrente e Time Zone com PHP

Veja como obter a data e hora atual e definir o fuso horário usando apenas o PHP.

Simplificando o desenvolvimento de APIs PHP com Swagger

Várias aplicações necessitam de manipulações de Data e Hora além de ser necessário estar de acordo com a região na qual a aplicação será executada, nesta breve matéria será apresentado como podemos exibir estas informações além de configurar nossa Time_zone.

Para se obter a Data ou Hora, é necessário utilizarmos a função Date() que está disponível desde o PHP 4.

Leia atentamente o código abaixo, toda explicação está comentada.

Código 01:

<?php
	/*
	Variável $data recebe o valor de retorno da função date(), passamos por parâmetros o que queremos retornar.
	d - Retorna o dia, de 01 até 31.
	m - Retorna o mês, de 01 a 12.
	Y - Retorna o ano em um formato de quatro dígitos, note 	uw Y está na maiúscula.
	/ é apenas a separação que vamos utilizar.
	*/
	$data = date("d/m/Y");
	
	/*
	Variável $$hora recebe o valor de retorno da função date(), passamos por parâmetros o que queremos retornar.
	H - Retorna a hora atual, de 00 até 23, H está na maiúscula.
	i - Retorna os minutos atuais, de 00 até 59.
	s - Retorna os segundos, de 00 até 59.
	- é apenas a separação que vamos utilizar.
	*/
	$hora = date("H:i:s");
	
	/*Exibimos abaixo o valor armazenado nas duas variáveis, ao invés de concatenar com o . foi utilizado o {} com a variável dentro*/
	echo "Hoje e {$data} e agora sao {$hora}";
?>

Existem outros valores que podem ser usados e testados, confira no site oficial do PHP através do link http://php.net/manual/pt_BR/function.date.php.

Vamos agora definir nosso horário para São Paulo/Brasil, mas para isto será necessário entender o que é Fuso Horário, caso você não saiba.

“As zonas horárias ou fusos horários são cada uma das vinte e quatro áreas em que se divide a Terra e que seguem a mesma definição de tempo” (Wikipédia: http://pt.wikipedia.org/wiki/Fuso_hor%C3%A1rio).

Para alterar a Zona, usamos a função date_default_timezone_set, esta função está presente nas versões 5.X do PHP.

Nossa Time Zone é America/Sao_Paulo, veja o exemplo de sua aplicação do algoritmo abaixo.

Código 02:

<?php
	date_default_timezone_set('America/Sao_Paulo');
	/*
	Variável $data recebe o valor de retorno da função date(), passamos por parâmetros o que queremos retornar.
	d - Retorna o dia, de 01 até 31.
	m - Retorna o mês, de 01 a 12.
	Y - Retorna o ano em um formato de quatro dígitos, note 	uw Y está na maiúscula.
	/ é apenas a separação que vamos utilizar.
	*/
	$data = date("d/m/Y");
	
	/*
	Variável $$hora recebe o valor de retorno da função date(), passamos por parâmetros o que queremos retornar.
	H - Retorna a hora atual, de 00 até 23, H está na maiúscula.
	i - Retorna os minutos atuais, de 00 até 59.
	s - Retorna os segundos, de 00 até 59.
	- é apenas a separação que vamos utilizar.
	*/
	$hora = date("H:i:s");
	
	/*Exibimos abaixo o valor armazenado nas duas variáveis, ao invés de concatenar com o . foi utilizado o {} com a variável dentro*/
	echo "Hoje e {$data} e agora sao {$hora}";
?>

Existem é claro, várias Time Zone que pode ser conferida no site oficial do PHP através do link http://php.net/manual/pt_BR/timezones.php.

Em caso de dúvidas deixem nos comentários, até a próxima.