Somando com Datas – PHP

Salve Galera,

Hoje é bastante comum trabalhar com datas em PHP, principalmente em sistemas financeiros. Vamos aprender como somar dias, meses, e anos a uma data específica ou a uma data atual. Para esta tarefa utilizaremos a função date() e mktime().

Função Date (Descrição): string date  (  string $format  [,  int $timestamp  ] ).
Função Mktime (Descrição): int mktime  ([  int $hour = date("H")  [,  int $minute = date("i")  [,  int $second = date("s")  [,  int $month = date("n")  [,  int $day = date("j")  [,  int $year = date("Y")  [,  int $is_dst = -1  ]]]]]]] ).

Vamos ao um exemplo prático:

Somando Dias:

Data Atual: echo date('d/m/Y',mktime(0,0,0,date('m'),date('d')+5,date('Y')));
Data 14/07/2010: echo date('d/m/Y',mktime(0,0,0,date('07'),date('14')-5,date('2010')));

Somando Meses:

Data Atual: echo date('d/m/Y',mktime(0,0,0,date('m')+10,date('d'),date('Y')));
Data 14/07/2010: echo date('d/m/Y',mktime(0,0,0,date('07'),date('14')+10,date('2010')));

Somando Anos:

Data Atual: echo date('d/m/Y',mktime(0,0,0,date('m'),date('d'),date('Y')+1));
Data 14/07/2010: echo date('d/m/Y',mktime(0,0,0,date('07'),date('14'),date('2010')+1));

Explicação:

A função Date() permite 2 parâmetros, um string e outro int. O primeiro parâmetro string formata o resultado, passando ‘d/m/Y’ a função retornará a data no seguinte formato 99/99/9999.

Já o segundo é passado é um timestamp, sendo assim passamos a função mktime responsável por retornar um int, sendo necessário passar hora, minuto, segundo, mes, dia, ano.

Fique atento na hora de passar os parâmetros, pois é usado o formato americano. Mês, Dia e Ano. Para subtrair dias, meses ou anos troque o +(mais) por -(menos).

Até a próxima.

No comments yet Categories: PHP Tags: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>