$duedate = date("Y")."-".$row['due_date']; //$row['due_date'] = 08-23
$submitdate= $row['sub_date']; //2016-08-29
$diff = date_diff($duedate,$submitdate);
echo $diff->format("%d days");
错误1 = date_diff()期望参数1为DateTimeInterface,字符串给定.....
错误2 =在.....
中调用布尔值的成员函数format()
date_diff函数需要传入一个DateTime对象。
使用DateTime::createFromFormat函数,您可以从字符串创建一个DateTime对象,然后在date_diff中使用它。
(这段代码没有经过测试,我对PHP也很陌生,我希望这对你有帮助!)
//Create the date from our records and the current year.
$dueDate = DateTime::createFromFormat('Y-m-d', date("Y")."-".$row['due_date']); //$row['due_date'] = 08-23
$submitDate= DateTime::createFromFormat('Y-m-d', $row['sub_date']); //2016-08-29
$diff = $dueDate->diff($submitDate); //Calculate the difference between the two dates
//Echo it out
echo $diff->format('%R%a days');
你的代码将无法工作,除非你传递DateTime对象给它。这也可以在DateTime对象上使用diff
方法来完成。你可以在文档中查看示例。
同时,检查你想要的日期之间的差异,因为它可以是正负6天。
$duedate = new DateTime(date("Y") . "-" . $row['due_date']);
$submitdate = new DateTime($row['sub_date']);
echo $duedate->diff($submitdate)->format("%R%a days");
演示