如何在两小时之间检查迭代的最佳方法是什么?

时间:2012-01-20 12:30:13

标签: php datetime

我想检查迭代是如何在两个日期间隔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,但我该如何计算呢?

3 个答案:

答案 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分钟内的秒数)

  

http://codepad.org/yhv0hdWl

答案 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));