使用date()方法计算日期差异

时间:2017-03-30 07:48:37

标签: php mysql

我一直在尝试执行以下代码来计算使用PHP $date = date('Y-m-d H:i:s');函数获取日期的差异。

$fine = mysqli_query($conn, "SELECT DATEDIFF(".$query_exec['Date_issued'].", ".$query_exec['Date_returned'].") AS days");
$fine = $fine*10;

如果返回的$ fine的值仅为0,即使日期的差异为&gt; <。

Plz帮助,谢谢

1 个答案:

答案 0 :(得分:0)

我怀疑$query_exec['Date_issued']$query_exec['Date_returned']包含类似2017-03-012017-03-30的内容,当插入上面的SQL代码时会生成:

SELECT DATEDIFF(2017-03-30, 2017-03-01) AS DAYS

此SQL中没有DATE值。 2017-03-012017-03-30是数字表达式,其结果为20131984

$query_exec['Date_issued']$query_exec['Date_returned']的值括在SQL中的引号中:

$sql = sprintf("SELECT DATEDIFF('%s','%s') AS DAYS",
               $query_exec['Date_issued'], $query_exec['Date_returned']);

我使用sprintf()使其更具可读性。如果您更喜欢它,也可以使用字符串连接。