我有2小时以下的小时和时间时间。 格式:Y-m-d H:i:s
$day1 = 2016-10-01 02:00:00
$day2 = 2016-10-02 03:00:00
使用
计算天数$interval = $day1->diff($day2);
echo $interval->format('%a');
这给了我1天但实际上它必须是2天因为它超过25小时。
所以基于几小时我们怎么能没有几天?
答案 0 :(得分:1)
根据您的提及,如果超过24小时,我们应将其四舍五入到第二天。
逻辑非常简单。
$hoursDiff
中的两个日期之间的小时差异存储起来。$days
。 $remaining
如果存在剩余价值,则在$day
添加1天。否则保持原样。
$day1 = '2016-10-01 02:00:00'; // Declare as string
$day2 = '2016-10-02 03:00:00'; // Declare as string
$hoursDiff = round((strtotime($day2) - strtotime($day1))/3600, 1);
$days = floor($hoursDiff / 24);
$remaining = ($hoursDiff % 24);
$dayDiff = $remaining ? ($days + 1) : $days;