Ano bissexto... um mês têm 30 outro têm 31 dias... horário de verão...
Existem funções exclusivas para tratar datas, facilitando então nossa vida. Neste post vou mostrar um pouco sobre a função mktime.
mktime($hora, $minuto, $segundo, $mes, $dia, $ano);
Observe a estrutura. Depois das variáveis $hora, $minuto e $segundo, temos $mes, seguido de $dia e por fim $ano. É preciso memorizar esta ordem para não misturar!
Vamos supor: uma pessoa comprou um produto pela internet no dia 01/02/2011. O vencimento da fatura é de 30 dias depois da data da compra. Qual será a data da cobrança?
Para esta operação precisamos das variáveis $dia, $mês e $ano (obs: a data do banco de dados vem no formato americano).
$data_compra = '2011-02-01';
list($ano, $mes, $dia) = explode('-', $data_compra);
Agora que temos as variáveis $dia, $mes e $ano podemos partir pro mktime.
$data_cobranca = date('d/m/Y', mktime('0', '0', '0', $mes, $dia + 30, $ano));
Agora temos a variável $data_cobranca representando a data de 30 dias depois da data de compra, que retornará 03/03/2011.