Как лучше всего проверить итерацию между двумя часами? - PullRequest
1 голос
/ 20 января 2012

Я хотел бы проверить, как проходит итерация между двумя датами с интервалом 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 ]

6 голосов
/ 20 января 2012

Вы делите количество минут между датами и желаемым интервалом.

$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 голос
/ 20 января 2012

Это по сути то же самое, что и ответ Тату Ульманена , но с использованием класса 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));
1 голос
/ 20 января 2012

Возможно, вам лучше воспользоваться Unix time , которое является просто количеством секунд с 1 января 1970 года.

$now = date("U");
// In half an hour:
$future = $now + (30 * 60);
//          (minutes * seconds in a minute)

$diff = $now - $future;

echo ($diff / 60);
// returns 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...