Manipulando datas facilmente
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().
Código: Alternar entre o modo de cópia/destaque
<?php $somar = 60 * 60 * 24 * 47; // 60 segundos * 60 minutos * 24 horas * 47 dias $daqui47dias = $hoje + $somar; ?>
<?php
$hoje = mktime(0, 0, 0, 11, 5, 2007); // dia 05/11/2007 em Unix Time Stamp
$somar = 60 * 60 * 24 * 47; // 60 segundos * 60 minutos * 24 horas * 47 dias
$daqui47dias = $hoje + $somar;
echo date('d/m/Y', $daqui47dias);
?>
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
PHP levado a sério