我想查看兩次間隔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;
在這個例子$迭代= 23,但如何計算呢?
我想查看兩次間隔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;
在這個例子$迭代= 23,但如何計算呢?
用所需時間間隔分隔日期時間之間的分鐘數。
$one = strtotime('2012-01-20 06:00');
$two = strtotime('2012-01-20 17:30');
$interval = 30;
echo round(($two - $one)/($interval * 60));
(我已經採取了快捷方式,通過數秒,在30分鐘內我除以秒爲單位)
你可能會更好使用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
Err。沒有。他不會。 –
對不起,我不知道你知道他正在研究的項目。 –
你可能不會相信這一點,我知道這可能是CNN的材料,它非常令人興奮,但是 - 他指定了兩個DateTime對象,而且你不會相信這一點 - DateTime實際上考慮到了DST!我知道,聽起來令人難以置信,有人實際上指定了他們使用的內容,然後又提供了一段實際上不起作用的代碼,並使用了原始規格中沒有的更糟糕的機制!但是,嘿,這不像是你的錯,它只是在發佈之前閱讀了一些內容,我知道這一定很難。 –
這與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));
你創建一個'DatePeriod'並使用'count'就可以了。使用SO Search for DatePeriod來學習如何。 – Gordon
可能重複[如何找到兩個指定日期之間的日期?](http://stackoverflow.com/questions/2736784/how-to-find-the-dates-between-two-specified-date) – Gordon