如何在只有月份和日期的日期对象中添加年份


How to add year in date object which only have month and date

$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");
演示