0
我想創建一個數組,從第一個月開始,最後結束。PHP DateInterval不適用於DateTime對象
$days = array();
$sdays = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
$d = new DateTime();
$d->modify('first day of this month');
for($i; $i<$sdays; $i++)
{
$days[(int)$d->format('W')][(int)$d->format('N')] = $d->format('Y-m-d');
$d->add(new DateInterval('P1D'));
}
print_r($days);
exit();
所以這很簡單。 但是結果看起來像DateInterval函數不能正常工作。
後市展望:
Array
(
[14] => Array // week
(
[1] => 2013-04-01
[2] => 2013-04-02
[3] => 2013-04-03
...
現實:
Array
(
[14] => Array
(
[1] => 2013-04-01
)
)
埃,方法,你如何解決這個問題也很簡單,創造一個又一個的DateTime對象,修改的第一天,然後創建一個新的DateTime對象從第一天開始,然後您可以將DateInterval添加到它。
因此,我修改我的DateTime對象的$ d->修改沒有日期可以添加到它。但問題是爲什麼?我想了解這一點。
感謝您的回答。
REPAS
對於PHP 5.4.5,你的腳本工作...'$ I = 0'是唯一的,我已經修復。並且'$ d-> add(new DateInterval('P1D'))'沒有任何東西。 [*** *** FIDDLE(http://phpfiddle.org/main/code/y79-sr8) – BlitZ 2013-04-30 10:50:24