我正在尝试确定dvd过期了多少天。我的代码是:
$query = "SELECT rental_date FROM rented_dvds WHERE dvd_id = '$dvd_id' ";
$result = mysqli_query($dbc, $query);
$newDate = DateTime::createFromFormat("l dS F Y", $result);
$startTimeStamp = strtotime("$newDate");
$endTimeStamp = strtotime("NOW");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
使用NOW()租借DVD时会捕获rented_dvds。当我运行该代码时,我得到:“警告:DateTime :: createFromFormat()期望参数2为字符串,对象在第34行的... / ... / return_dvd.php中给出”
第34行是以$ newDate变量开头的行。
这是我从不同来源拼凑而成的所有代码,但我认为我已经正确拼凑了。我一直在寻找答案,并尝试了一些不同的解决方案,但我似乎无法让它们中的任何一个起作用。
另外,这是我的第一篇文章,所以'嗨!'并感谢您的帮助!
答案 0 :(得分:0)
这只是因为$ result实际上是一个可以包含多行的对象。你必须走过它才能保留你需要的特定行:
<?php
$query = "SELECT rental_date FROM rented_dvds WHERE dvd_id = '$dvd_id' ";
$result = mysqli_query($dbc, $query);
$row = $result->fetch_assoc();
$newDate = DateTime::createFromFormat("l dS F Y", $row['rental_date']);
$startTimeStamp = strtotime("$newDate");
$endTimeStamp = strtotime("NOW");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;
$numberDays = intval($numberDays);
?>
答案 1 :(得分:0)
你是否以正确的方式获取?因为你是直接获取$ result,它以pbject或数组的形式给你..你必须写
$row=mysqli_fetch_array($result);
$newDate = DateTime::createFromFormat("l dS F Y", $row['rental_date']);