如何在不关注年份的情况下计算两个日期之间的日期差?
例如,如果我有$first = '20/08/2019'
和$second = '10/08/2020'
,即使$second
日期比$first
早一年,该函数也应返回10?
答案 0 :(得分:1)
我找到了一种方法。只要获得更大的年份(就我而言,我知道它将始终是$first
日期),然后使用该年份重新创建$second
日期:
$first = new \DateTime('10/08/2020');
$first_year = $first->format('Y');
$second = new \DateTime('20/08/2019');
$second_without_year = $second->format('m-d');
$second_modified = new \DateTime($first_year.'-'.$second_without_year);
$first->diff($second_modified)->format("%R%a");
答案 1 :(得分:0)
通过忽略年份,我想我们也包括leap年。在这种情况下,以下代码可能会起作用:
$first = date_create('20-08-2019');
$second = date_create('10-08-2020');
$interval = date_diff($first, $second);
$diff = abs($interval->format("%R%a"));
if($diff>365){
$diff = intval($diff/365);
}
要忽略the年天数,请从$ diff中减去年份之间的of年数。