将2个日期之间的天数插入数据库

时间:2018-08-13 15:42:02

标签: php sql date

我在html中输入了2个日期

<tr>
    <td>Value Date</td>
    <td><input type='date' name='valueDate' class='form-control'></td>                  
</tr>
<tr>
    <td>Maturity Date</td>
    <td><input type='date' name='maturityDate' class='form-control'></td>                   
</tr>

这是操作代码

$valueDate = $_POST['valueDate'];
$maturityDate = $_POST['maturityDate'];

现在,我有一个变量$days,用于两个日期之间的天数,即是这样的初始值:

$days = date_diff($valueDate,$maturityDate);

这是我的查询:

$query = mysqli_query($conn, "INSERT INTO placement(
                        valueDate, 
                        maturityDate,
                        days
                        ) VALUES(
            '$valueDate',
            '$maturityDate',
            '$days'
            )");

使用 PHP 7.2.0 来使用date_diff

之前,我尝试使用$days->format("%a");

但是我得到了错误。有想法吗?

3 个答案:

答案 0 :(得分:1)

这应该有效

$date1 = new DateTime($_POST['valueDate']);
$date2 = new DateTime($_POST['maturityDate']);
$interval = $date1->diff($date2);

答案 1 :(得分:1)

尝试以下代码:

<?php
 $datetime1 = new DateTime('2009-10-11');
 $datetime2 = new DateTime('2009-10-13');
 $interval = $datetime1->diff($datetime2);
 echo $interval->format('%R%a days');
?>

答案 2 :(得分:0)

http://php.net/manual/en/class.dateinterval.php

//$d1=new DateTime("2018-07-08"); 
$d1=new DateTime($_POST['valueDate']);
//$d2=new DateTime("2018-10-08"); 
$d2=new DateTime($_POST['maturityDate']);
$interval = $d2->diff($d1)->days; 

https://ideone.com/hpkfxq