如何使用数组中的date_diff()查找两个日期之间的差异
我需要查找数组中两个日期之间的差异。这里是阵列:如何使用数组中的date_diff()查找两个日期之间的差异
$lists[] = date('Y-m-d', strtotime($user->created_at));
的echo $lists[1];
实施例输出是2017-08-01
我试图
$difftime = $lists[1]->diff($lists[0]);
echo $difftime->format('d');
和echo $lists[1]->diff($lists[0]);
两个给我错误:
Call to a member function diff() on string
我也曾尝试echo date_diff($lists[1], $lists[0]);
它给错误
date_diff() expects parameter 1 to be DateTimeInterface, string given
我知道这里有关于同一问题的许多问题,但我找不到这对我工作的解决方案。所以请帮助我。
参考: - diff()
这需要DateTimeInterface作为一个参数,它也会叫上DateTimeInterface只有。
所以做象下面这样: -
<?php
$lists=array('2017-08-23','2017-08-26');
$datetime1 = new DateTime($lists[0]);
$datetime2 = new DateTime($lists[1]);
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
输出: - https://eval.in/850404
之前,你可以计算出使用DateTimeInterface::diff()
的差异,你需要创建的DateTimeInterface
第一,例如实例:
$dateOne = \DateTimeImmutable::createFromFormat(
'Y-m-d',
$lists[0]
);
$dateTwo = \DateTimeImmutable::createFromFormat(
'Y-m-d',
$lists[1]
);
$difference = $dateTwo->diff($dateOne);
请注意,$difference
将是DateInterval
的一个实例 - 如果您需要差别作为字符串,您需要使用所需格式的$difference->format()
。
仅供参考,请参阅:
我不知道谁在低估你或者为什么,因为你是更完整的答案。 – Sammitch
谢谢@Sammitch,我很感激! – localheinz
嗨,我没有得到错误,但结果是意外的。 $ list [0]日期为2017-07-20,$ lists [1]为2017-08-01。所以结果应该是10天,但我得到了19.我最后添加了这个:$ difftime = $ difference-> format('d'); echo $ difftime; 输出是19.我错过了什么? – Ahsan
它的工作原理... !!! :) – Ahsan
@Ahsan很高兴帮助你:) :) –