Pular para o conteúdo

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.
Ariel Galante Dalla Costa arieldll
Hits: 26.803 Categoria: PHP Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 3: 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 ?>
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.


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:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Calculando a diferença de datas
   3. Time zone e Conclusão

Lógica para Computação - Parte V

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

Ética na Programação

Lógica para computação - parte III

Lógica para computação - parte II

Criando Virtual Host no Apache: simples assim

PHP 5 - Compilando com as melhores práticas com PHP 4

Utilizando PHP para validar dados passados pelo usuário

PEAR - Utilizando classes prontas e documentadas no PHP

Turck MMcache completo e sem misté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.

Contribuir com comentário

Entre na sua conta para comentar.