PHP - Somar ou Subtrair dias/meses de uma data - Add or Subtract days/months from a date

Adicionar
♦ 10 dias a partir de hoje
echo date('d/m/Y', strtotime("+10 days"));

♦ 10 dias a partir de uma data
echo date('d/m/Y', strtotime("+10 days",strtotime('20-07-2011')));

Subtrair
♦ 10 dias a partir de hoje
echo date('d/m/Y', strtotime("-10 days"));

♦ 10 dias a partir de uma data
echo date('d/m/Y', strtotime("-10 days",strtotime('20-07-2011')));

Se você tem o PHP 5.3 ou maior | If you have PHP 5.3 or higher

Adicionar - Add

                      Meses
                      $inicio='2016-01-01';
                      $parcelas=5;
                      $data_termino = new DateTime($inicio);
                      $data_termino->add(new DateInterval('P'.$parcelas.'M'));
                      $termino_pagamento=$data_termino->format('Y-m-d');

                      Dias
                      $inicio='2016-01-01';
                      $parcelas=5;
                      $data_termino = new DateTime($inicio);
                      $data_termino->add(new DateInterval('P'.$parcelas.'D'));
                      $termino_pagamento=$data_termino->format('Y-m-d');

Subtrair - Subtract

                      Meses
                      $inicio='2016-01-01';
                      $parcelas=5;
                      $data_termino = new DateTime($inicio);
                      $data_termino->sub(new DateInterval('P'.$parcelas.'M'));
                      $termino_pagamento=$data_termino->format('Y-m-d');

                      Dias
                      $inicio='2016-01-01';
                      $parcelas=5;
                      $data_termino = new DateTime($inicio);
                      $data_termino->sub(new DateInterval('P'.$parcelas.'D'));
                      $termino_pagamento=$data_termino->format('Y-m-d');


Comentários

  1. estou usando uma variável no lugar da data que eu quero subtrair porém não está dando certo!

    ResponderExcluir
  2. Por diversas vezes que precisei dessa função, o google sempre me traz para esta página!!! Muito obrigado!!!

    ResponderExcluir
  3. Excelente me ajudo muito, só tem um mínimo detalhe na parte de subtração não esta subtraindo se colocou o sinal de "+".

    Abraço.

    ResponderExcluir
  4. Legal, valew pela dica.
    Quanto ao formato da data, você é livre pra escolher, porém a data que vc está usando pra somar/subtrair tem que ter o mesmo formato.

    No meu caso fiz assim, e funcionou muito bem.
    date("Y-m-d", strtotime("+10 days", strtotime("2014-06-20")));

    ResponderExcluir
  5. Luy, muito obrigado cara.
    Simples e rápido.

    ResponderExcluir
  6. Edinelson Prazer, muito boa essa função para somar datas!!

    ResponderExcluir
  7. Parabéns!
    Seria legal se tivesse tb um exemplo como subtrair/somar dias ÚTEIS. :)

    ResponderExcluir
    Respostas
    1. Oi André,

      Segue link http://stackoverflow.com/questions/336127/calculate-business-days

      Fique atento apenas para a Array feriados, nesse caso ou vc faz na mão ou busca uma programação que gere os feriados do ano e depois converte em array ;)

      Excluir

Postar um comentário

Postagens mais visitadas