Trabalhando com datas em PHP

A maioria dos sistemas utilizam datas para controlar seu funcionamento, ou ainda para cadastros, etc. A linguagem PHP não poderia ser diferente, também possui um vasto suporte à manipulação de datas, bem como os procedimentos de tempo.

[ Hits: 22.284 ]

Por: Ariel Galante Dalla Costa em 22/12/2011 | Blog: http://arielgdc.wordpress.com


Time zone e Conclusão



Time Zone

O que é Time Zone?

- É a relação horário/Meridiano Greenwich.

Mas no que é útil?

- Por exemplo, caso a hospedagem seja fora do Brasil, ao buscar a data atual, o servidor irá retornar a data local, podendo estar com o horário diferente do desejado; então, para sincronizar o horário do servidor com o horário desejado, deve-se adicionar uma função no arquivo PHP.

Basta adicionar a função 'date_default_timezone_set()', como por exemplo:

<?php date_default_timezone_set("America/Sao_Paulo"); //DEFINE O TIMEZONE BRASILEIRO GMT -3 ?>


A lista de Time Zone pode ser obtida em:
Ao desejar outro Time Zone brasileiro, pode-se selecionar na lista disponível no endereço acima.

Para calcular a diferença de dias, meses, anos, horas, minutos, segundos, basta colocar a lógica para funcionar.

Um exemplo de cálculo de quantos dias de vida uma pessoa tem:

<?php date_default_timezone_set("America/Sao_Paulo"); //ESTA LINHA NÃO É OBRIGATÓRIA $Data_Nasc="10/01/1994"; //INSERE UMA DATA QUALQUER $Data=explode("/",$Data_Nasc,); //SEPARARA POR STRINGS $Dia=$Data[0]; //DEFINE DIA $Mes=$Data[1]; //DEFINE MÊS $Ano=$Data[2]; //DEFINE ANO $Data_times=mktime(0,0,0,$Dia,$Mes,$Ano); //GERA TIMESTAMP $Data_atual=time(); //BUSCA DATA ATUAL echo "Você tem ".(($Data_atual-$Data_times)/(60*60*24))." dias de vida"; //DIMINIU E IMPRIME NA TELA ?>


Conclusão

A manipulação de datas é muito importante. Em qualquer linguagem, banco de dados, em qualquer sistema.

Há várias formas de implementar datas em PHP, bem como desenvolver sistemas de busca de datas e de liberação/bloqueio.

Uma vantagem grande é poder trabalhar diretamente como Unix timestamp, o que deixa os que são mais familiarizados em "C like", poderem interagir mais facilmente com as datas, bem como, com toda a linguagem.

A Time Zone é uma grande ajuda para quem hospeda seus sistemas fora, ou ainda, quem não tem a hora do servidor correta que necessita, pois consegue alinhar e definir facilmente a hora do sincronismo que é necessário.

Espero que consiga-se entender facilmente o conteúdo passado.

Referências:
Página anterior    

Páginas do artigo
   1. Introdução
   2. Calculando a diferença de datas
   3. Time zone e Conclusão
Outros artigos deste autor

MySQL, Apache2, PHP5, phpMyAdmin e o driver de conexão com o NetBeans no OpenSUSE 11.2

Lógica para Computação - Parte V

Computação em nuvem, uma visão panorâmica

Introdução a Lógica para computação

Lógica para computação - parte IV

Leitura recomendada

Debugando aplicações PHP com Xdebug e Eclipse PDT

Tags automáticas em URLs com a classe urlmatch da PHP

Cadastro e login em PHP

Compactador de URL utilizando manipulação de diretórios do Linux com PHP

Abordagem exemplificada de orientação à objeto com PHP 5

  
Comentários
[1] Comentário enviado por arieldll em 22/12/2011 - 11:44h

Ha um erro que acabou passando despercebido em um exemplo:
Para calcular a insercao de 22 dias, precisa-se multiplicar tambem por 24, pois sao 22 dias * 24 horas * 60 minutos * 60 segundos.

Aqui esta o codigo certo:
<?php
$Data_Atual=time(); //BUSCA A DATA ATUAL
$Acrescimo=22*24*60*60; //CALCULA O ACRÉSCIMO, DE 22 DIAS
$Data_Gerada=$Data_Atual+$Acrescimo; // SOMA A DATA ATUAL AOS 22 DIAS
echo "A data gerada foi: ".date("d/m/Y", $Data_Gerada); //TRANSFORMA PARA O FORMATO dia/mês/ano
?>

[2] Comentário enviado por rai3mb em 22/12/2011 - 16:10h

Corrigido.

[3] Comentário enviado por ederrb em 26/12/2011 - 14:12h

Bem, o mais adequado para calcular datas não é o apresentado neste artigo. Leiam o manual http://br.php.net/strtotime

Exemplo, para somar 22 dias a data atual, bastaria vc fazer algo como:

echo date('d/m/Y',strtotime('+22 days'));

Muito mais fácil, não?

Abraço!

[4] Comentário enviado por arieldll em 26/12/2011 - 15:14h

ederrb, obrigado por sua observacao e por compartilhar esta funcao conosco.
Fica a criterio do programador definir qual prefere. Eu acredito que desta forma fique muito mais organizado, mas sua dica esta mais do que valendo.
Valeu amigao

[]'s Ariel.

[5] Comentário enviado por DonatoBarros em 06/03/2013 - 16:00h

Parabéns pelo artigo. Muito bom...

http://donatobarros.com


Contribuir com comentário