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');
♦ 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');
simples e prático...
ResponderExcluirestou usando uma variável no lugar da data que eu quero subtrair porém não está dando certo!
ResponderExcluirVerifique o formato da data q deve ser dd-mm-aaaa
ExcluirMuito Bom parabens
ResponderExcluirSimples e fácil, obrigado.
ResponderExcluirPor diversas vezes que precisei dessa função, o google sempre me traz para esta página!!! Muito obrigado!!!
ResponderExcluirMuito bom, já usei muitas vezes!!!
ResponderExcluirExcelente me ajudo muito, só tem um mínimo detalhe na parte de subtração não esta subtraindo se colocou o sinal de "+".
ResponderExcluirAbraço.
Ops... rs, arrumado. ;)
ExcluirLegal, valew pela dica.
ResponderExcluirQuanto 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")));
vlw
ResponderExcluirLuy, muito obrigado cara.
ResponderExcluirSimples e rápido.
Mt bom!
ResponderExcluirMuito Boom Excelente!!!!!!!!!!!
ResponderExcluirEdinelson Prazer, muito boa essa função para somar datas!!
ResponderExcluirParabéns!
ResponderExcluirSeria legal se tivesse tb um exemplo como subtrair/somar dias ÚTEIS. :)
Oi André,
ExcluirSegue 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 ;)