1 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果您轉(zhuǎn)儲(chǔ)傳遞給 DatePeriod 的日期,您將看到它們都是今天,因此您的開(kāi)始日期在結(jié)束日期之后。在這種情況下,您的意思實(shí)際上是:給我今天 23:00 到明天 05:00 之間的幾個(gè)小時(shí) - 所以如果發(fā)生這種情況,只需在結(jié)束日期后添加 1 天即可。
<?php
$a = '23:00';
$b = '05:00';
$aDate = new DateTime($a);
$bDate = new DateTime($b);
if ($aDate > $bDate) {
$bDate->add(new DateInterval('P1D'));
}
$period = new DatePeriod(
$aDate,
new DateInterval('PT1H'),
$bDate,
DatePeriod::EXCLUDE_START_DATE
);
foreach ($period as $date) {
echo $date->format("H:i\n");
}
輸出:
00:00
01:00
02:00
03:00
04:00
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)