Ir para conteúdo
Marcio_123

Somar data do banco de dados a uma quantidade de dias

Recommended Posts

Pessoal blz,

 

To fazendo essa consulta no banco e preciso retornar a data + 180 dias para mostrar ao cliente a data pro proximo pagamento.

 

Na consulta abaixo pego a data que foi feito o ultimo pagamento, agora preciso mostrar o proximo pagamento que sera em 180 dias.

 

		<? 
		$data = mysql_query("SELECT data_pgto
        FROM tb_pagamentos_cartao
		order by id desc
		Limit 1
		");
		while($dados=mysql_fetch_array($data)) {
		?>
           Seu proximo pagamento sera em <?=$dados[data_pgto] + 120 ?>
  		<? } ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer isso na própria consulta.

SELECT 
    /* https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add */
    data_pgto + INTERVAL 180 DAY AS proximo_pagto,
    /* ou https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_adddate */
    ADDDATE(data_pgto, 180) AS proximo_pagto
FROM 
    tb_pagamentos_cartao
ORDER BY 
    id DESC
LIMIT 1

Você pode testar o código acima em http://sqlfiddle.com/#!9/9eecb/26452.

 

Ou utilizar a classe DateTime(http://php.net/manual/en/class.datetime.php) do PHP.

//http://php.net/manual/en/class.datetime.php
$proximo_pagto = new DateTime($dados['data_pgto']);
//http://php.net/manual/en/datetime.add.php
//http://php.net/manual/en/class.dateinterval.php
$proximo_pagto->add(new DateInterval('P180D'));

//http://php.net/manual/en/datetime.format.php
echo $proximo_pagto->format('d/m/Y');

 

Não é recomendado mais também seria possível fazer o seguinte.

//http://php.net/manual/en/function.strtotime.php
$proximo_pagto = strtotime($dados['data_pagto'] . ' +180 days');

//http://php.net/manual/en/function.date.php
echo date('d/m/Y', $proximo_pagto);

 

Você pode testar os códigos acima em https://3v4l.org/uQMGt.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola brother blz,

 

fiz assim mas não mostrou nada.  

 

<?
  $sql = mysql_query("SELECT ADDDATE(data_pgto, 180) AS proximo_pagto
FROM 
    tb_pagamentos_cartao
ORDER BY 
    id DESC
LIMIT 1");
$data_pgto = '';
while ($row = mysql_fetch_object($sql)) {
$data_pgto = htmlentities($row->proximo_pagto);
?>	
    <div><?=$proximo_pagto?></div>
<?
}
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você utilizou a variável incorreta.

//Aqui você seta a variável $data_pgto
$data_pgto = htmlentities($row->proximo_pagto);
?>
    <!-- E aqui usa a variável $proximo_pagto -->
    <div><?=$proximo_pagto?></div>
<?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.