Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

×

Informação importante

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