使用date()方法选择DATEDIFF()AS DAYS

时间:2017-04-05 05:31:21

标签: php mysql datediff

我使用DATEDIFF方法来获取使用日期(YYYY:mm:DD HH:MM:ss)函数获得的两个日期的差异,但每次都获得输出0,即使差异更大超过1天。

这是我的代码 -

if(isset($_GET['rt']))
{
$dateis=$_GET['rt'];
}
date_default_timezone_set('Asia/Kolkata');
$date = date('Y-m-d H:i:s');
if(mysqli_query($conn, "UPDATE issued_books SET Date_returned = '$date' WHERE Book_id = '$bk_id' AND Date_issued = '$dateis'"))
{
    $fine = sprintf("SELECT DATEDIFF('%s','%s') AS DAYS",
               '$date', '$dateis');
    $fine = $fine*10;
    mysqli_query($conn, "UPDATE member_db SET Fine_amt = (Fine_amt + '$fine') WHERE Member_id = '$mem'");
}

任何帮助都会非常感激,谢谢:)。

2 个答案:

答案 0 :(得分:0)

1.删除'$ date'和'$ dateis'

的单引号
$fine = sprintf("SELECT DATEDIFF('%s','%s') AS DAYS", $date, $dateis);

2. $fine = $fine*10; //这不起作用,因为查询还没有在mysql中执行,这就是为什么你总会得到不希望的结果

始终清理参数以避免sql注入

答案 1 :(得分:0)

没关系,我在这里找到了答案 - https://stackoverflow.com/a/676828/7744098使用strtotime()&地板方法。

谢谢大家的评论。