我想检查迭代是如何在两个日期间隔30分钟。
我有例如:
$one = new DateTime('2012-01-20 06:00');
$two = new DateTime('2012-01-20 17:30');
$first = $one->format('H:i');
$second = $two->format('H:i');
$interval = 30;
在此示例中,$ iteration = 23,但我该如何计算呢?
答案 0 :(得分:6)
您可以将日期时间之间的分钟数除以所需的时间间隔。
$one = strtotime('2012-01-20 06:00');
$two = strtotime('2012-01-20 17:30');
$interval = 30;
echo round(($two - $one) / ($interval * 60));
(我采用了一个捷径,并将秒数除以30分钟内的秒数)
答案 1 :(得分:1)
使用Unix time可能会更好,这是1970年1月1日以来的秒数。
$now = date("U");
// In half an hour:
$future = $now + (30 * 60);
// (minutes * seconds in a minute)
$diff = $now - $future;
echo ($diff / 60);
// returns 30
答案 2 :(得分:1)
这与Tatu Ulmanen's answer基本相同,但是你已经使用了DateTime类。
$one = new DateTime('2012-01-20 06:00');
$two = new DateTime('2012-01-20 17:30');
$first = $one->getTimestamp();
$second = $two->getTimestamp();
$interval = 30;
echo round(($second - $first) / ($interval * 60));