我使用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'");
}
任何帮助都会非常感激,谢谢:)。
答案 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()&地板方法。
谢谢大家的评论。