Conheça o Plugfeed | » Início » Programação » PHP » Trabalhando com datas no PHP
Conheça o Plugfeed | » Início » Programação » PHP » Trabalhando com datas no PHP -->
 
Avaliação: | Publicado em: 26/06/2007
Trabalhando com datas no PHP
Diogo Abreu Trabalha como desenvolvedor web desde 2005. Possui experiência em linguagens como PHP,C/C++ Java, C#, SQL. Largou a faculdade de Ciência da Computação para ingressar na faculadade de Desenvolvimento de Jogos Digitais na PUC. Atualmente também desenvolve jogos para desktop e web.
Trabalhando com datas no PHP

Pessoal, tudo bem?

Este é o meu primeiro artigo aqui na Plug Masters. Irei abordar um dos temas que causa mais dificuldade para quem está começando, que é o calculo de datas.

Vamos criar um sistema que calcula a data de vencimento para uma compra com várias parcelas.

Primeiro vou mostrar o básico que se deve saber para trabalhar com datas, que é o comando date.

Para mostrar uma data assim: 26/06/2007, veja a sintaxe:

<?php

echo date('d/m/Y');
?>

Repare que para mostrar o ano como 2007, o Y tem que estar maiúsculo. Para mostrar apenas 07,  escreva o  y minúsculo.

Você também pode mostrá-los separadamente, dessa maneira:
<?php
echo date('d');
echo date('m');
echo date('Y');
?>

Bem, agora que você já sabe o básico, vamos criar nosso sistema que calula a data de vencimento para uma compra parcelada.

<?php

 function calculoData($_parcelas)
 {
    // o prazo começa com 0
    $_prazo = 0;
   
    // pegamos o dia atual
    $_dia   = date('d');
    $_mes = date('m');
    $_ano  = date('Y');

    // calcula-se o vencimento de acordo com n° de parcelas
    for($i=0;$i < $_parcelas;$i++)
    {
       $_ts = mktime(0,0,0,$_mes,$_dia + $_prazo,$_ano);
       $_data = date('d/m/Y',$_ts);

       echo $i+1  ."°  vencimento no dia: ".  $_data 
."<br>";
   
        //supondo que o vencimento é de 30 em 30 dias 
        $_prazo += 30;
    }
   
 }

 //para utilizar basta, chamar a função com o numero de parcelas
 calculoData(5);
?>

O resultado apresentado será:
1° vencimento no dia: 26/06/2007
2° vencimento no dia: 26/07/2007
3° vencimento no dia: 25/08/2007
4° vencimento no dia: 24/09/2007
5° vencimento no dia: 24/10/2007


Agora, explicando como foi feito o cálculo.
 $_ts = mktime(0,0,0,$_mes,$_dia + $_prazo,$_ano);

A função mktime
retorna o timestamp Unix correspondente para os argumentos dados. Este timestamp é um inteiro contendo o número de segundos entre a Era Unix (1° de janeiro de 1970) e o tempo especificado.

O três primeiros argumentos que estão zerados são as horas, que no nosso exemplo não influenciam, por isso estavam zeradas.

$_data = date('d/m/Y',$_ts);
Usando o date, formatamos o resultado do cálcuclo que estava gravado na variável $_ts. Essa formatação pode ser feita do jeito que você quiser. No nosso caso, optamos pelo formato brasileiro.

Bem, pessoal é isso, espero que tenham gostado. Estou à disposição para críticas, sugestões e elogios.

Até a próxima!





Viviane de Sousa <vivianesf@oi.com.br>
Parabéns pelo seu primeiro artigo, excelente!!! Aprendi a usar a função mktime, que vai ser muito útil na minha vida como programadora. Obrigada Diogo, valeu!
Muito bom o artigo, está fácil de entender e o conteúdo está muito bom!!!Parabéns...
Rodrigo Brandelli Schaan
Parabéns. Artigo simples e útil. a função mktime era o que eu estava procurando.
Luiz Fernando M Souza <usocomercial@gmail.com>
Agradeço vossa generosidade em compartilhar seu conhecimento!!!
Meu,caro!Sou iniciante epara mim foi ótimo porque foi bem esplicado e facil de entender...
valeu!
Thiago elias <thiagho@gmail.com>
Parabéns!!!
Vlew
Cara, eu tava atraz disso a um tempão gostei de mais vo usar !!!
Caro diogo, parabéns excelente matéria. super objetivo e eficaz..

gostaria de lhe pedir um auxilio, como faço para fazer com que as variaveis dia mes e ano sejam preenchidas em um textfield ao invés de ser identificada pelo sisitema da data atual??

agradeço atenciosamente,

Jack








Um produto Detetive.net