获取 PHP 日期时间差(以天为单位),将午夜视为天的变化

2022-08-30 12:12:45

获取两个PHP之间的天差的最简单方法是什么,将午夜视为一天的变化(就像SQL函数一样)?DateTimesDATEDIFF(DAY)

例如,在今天 13:00 到明天 12:00 之间,即使间隔小于 24 小时,我也应该得到 1(天)。

$date1 = new DateTime("2013-08-07 13:00:00");
$date2 = new DateTime("2013-08-08 12:00:00");
echo $date1->diff($date2)->days; // 0

答案 1

您可以忽略日期字符串的时间部分

$date1 = new DateTime(date('Y-m-d', strtotime("2013-08-07 13:00:00")));
$date2 = new DateTime(date('Y-m-d', strtotime("2013-08-08 12:00:00")));
echo $date1->diff($date2)->days; // 1

答案 2

一个简单的解决方案来剥离时间或将其设置为 ,这应该始终为您提供所需的结果:00:00:00

$date1 = new DateTime("2013-08-07");
$date2 = new DateTime("2013-08-08");
echo $date1->diff($date2)->days;

$date1 = new DateTime("2013-08-07 00:00:00");
$date2 = new DateTime("2013-08-08 00:00:00");
echo $date1->diff($date2)->days;

时间在这里并不重要


推荐