BuscaPé, líder em comparação de preços na América Latina

PHPit

Pular navegação

Manipulando datas facilmente

Enviado em 05/11/2007 às 22:06

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().

  1. <?php
  2.  
  3. $hoje = mktime(0, 0, 0, 11, 5, 2007); // dia 05/11/2007 em Unix Time Stamp
  4. $somar = 60 * 60 * 24 * 47; // 60 segundos * 60 minutos * 24 horas * 47 dias
  5.  
  6. $daqui47dias = $hoje + $somar;
  7.  
  8. echo date('d/m/Y', $daqui47dias);
  9.  
  10. ?>


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

 

Comente (07)




Comentário #1
Autor: Anderson (Kuen)
Em: 07/11/2007 às 07:20

Shows!!! Vou fazer um script pra saber qual é o dia do meu aniversário!! hehe

Comentário #2
Autor: Xorna
Em: 07/11/2007 às 08:17

Mazááá Rafa, show de bola esse teu script, afinal antes dele sempre estivemos numa batalha para desvendar um algoritmo capaz de resolver isso para nós hehehe


Abraço

Comentário #3
Autor: Jean
Em: 07/11/2007 às 23:25

Olá.

Tem algo bem bacana que é a funcao strtotime. Veja no manual http://br.php.net/manual/pt_BR/function.strtotime.php

Flw

Comentário #4
Autor: Carlos Tristacci
Em: 09/11/2007 às 10:38

Não vou comentar sobre o post mas sobre o autor. Pois, nos últimos anos vejo nosso amigo Rafael, acumulando conhecimento e experiências e a cada dia se tornanado um profissional e uma pessoa melhor.
Jaques, este site será no decorrer do tempo um site referência na área com certeza.

Sucesso meu garoto!!

Comentário #5
Autor: Cintia
Em: 09/11/2007 às 23:16

Oie...
vou imitar o meu querido prof. Carlos .
não vou comentar do post pq ... sabe neh... boiei
ahhh mas do Rafas
sim... um pequeno grande genio ...
super sucesso pra ti...
jah sou tua fãaa

e o phpit jah ta nos favoritos

Bjao

Comentário #6
Autor: André
Em: 10/11/2007 às 09:27

"Não saber ao certo quantos dias o mês tem" oO, tá me tirando rapá? ahsuehause

Tri massa cara, mas ainda quero aquele texto sobre como mandar e-mails pro Gmail, via php ;)

Ah, também sei que tu ainda quer aquele texto sobre o uso da crase ;P

Abraço!

Comentário #7
Autor: José
Em: 06/12/2007 às 12:06

É isso aí Jaques.... já vou começar a utilizar, porque tive uma situação de calculo de dadas no sistema que estou montando...

Realmente eu sempre olhei para o nome desta função e nunca corri atrás de estuda-lá mais a fundo, mas este seu "simples tutorial" já deu para mudar o meu conceito de formatação de datas...

Valeu...

Artigos Recentes

Rafael Jaques - PHPit 2007
Site sob Creative Commons - Alguns direitos reservados

Assine o RSS do PHPit! :)
Saiba onde tem o melhor preço antes de comprar