我正在尝试计算两次的差。我正在使用这种方法在几分钟内返回差额。
$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$timeDuration = $interval->format('%im');
但是,$timeDuration
返回15m
而不是75m
。
任何可以纠正代码以使其在数分钟内返回正确正确差值的帮助吗?
答案 0 :(得分:1)
因为9am
和10:15am
之间的difference是1小时($interval->h
)和15分钟($interval->i
),而不是实际的75分钟。
如果要获取总分钟数,则必须进行计算:
$differenceInMinutes = $interval->i + ($interval->h * 60);
如果您希望有更通用的解决方案,那么我会花unix时间:
$differenceInSeconds = abs($datetime1->format('U') - $datetime2->format('U'));
$differenceInMinutes = ceil($differenceInSeconds / 60);
答案 1 :(得分:0)
几分钟之内就能变得与众不同的简单方法
<?php
$start = date_create('1990-01-01 09:00:00');
$end = date_create('1990-01-01 10:15:00');
$interval=date_diff($end, $start);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
$in_minutes = $hours * 60 + $minutes;
echo 'Diff. in minutes is: '.$in_minutes;
?>
答案 2 :(得分:0)
当您尝试计算两个DateTime
之类的$datetime1 = new DateTime('9.00am');
和$datetime2 = new DateTime('10.15am');
之间的差异时,您知道该差异为75分钟,但结果为diff()
$interval->h
的方法是1小时,$interval->i
的方法是15分钟。因此,这就是计算方法:
$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
$difference_in_minutes = $hours * 60 + $minutes;
echo 'Difference in minutes is: ' . $difference_in_minutes . "\n";
有一个有效的snipped in this link