Manipulando datas facilmente

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

Tenho visto que muitas pessoas têm tido problemas ao trabalhar com data. Seja pelo fato de não saber ao certo quantos dias o mês tem ou por se atrapalhar na contagem de dias de um mês para outro.

O que algumas pessoas não sabem, é que o PHP é extremamente bom com datas.

Para realizarmos nossa experiência de hoje, precisaremos de apenas duas funções!

“Duas funções, Rafael?” Sim, duas funções!

E são as seguintes: date() e mktime(). É bastante provável que a maioria das pessoas já tenha utilizado as duas, mas muita gente não sabe o poder que as duas têm juntas!

Conceito

Já ouviu falar na Unix Epoch? A “Época Linux” começou dia 1º de Janeiro de 1970.
“Ta, e daí?”
E daí que graças a ela, podemos efetuar cálculos precisos de data. Todas as vezes que você invoca a função mktime(), ela retorna o total de segundos que se passaram desde o começo da Unix Epoch. Mas do que adiantam os segundos? Aí que vem a parte boa. A função date() pode formatar datas baseadas na Unix Epoch!
Colocando a mão na massa
Vamos supor que queremos descobrir que dia será daqui 47 dias. Vamos usar o mktime() com seus devidos parâmetros para encontrar a data de hoje. Sempre assumiremos horas, minutos e segundos com 0 (zero), porque isto indica exatamente o início do dia. :)

Depois de encontrar a data, iremos calcular quanto é 47 dias em segundos. Depois somamos e convertemos para uma data formatada usando date().

[php][/php]

Mais fácil que formatar computador! ;)

Conclusão

Simples e eficiente. É claro que você pode explorar muito mais possibilidades com estas duas funções… E também é claro que ficou muito simples este tutorial, mas é apenas o primeiro. Não queria deixar a galera no vácuo…
O próximo vai ser sobre Expressões Regulares e prometo que vai ser mais bacana! :)

Muito obrigado pessoal!

Um forte abraço e fiquem com Deus!
Rafael Jaques