【发布时间】:2013-08-31 10:32:34
【问题描述】:
我有一个日期数组。我想从特定的开始日期到特定的结束日期,并在每次在数组中找到给定日期时增加一个变量。 Í 尝试使用以下代码 sn-p:
$result = array();
$iterator = 0;
for ($minDateTime = new DateTime($minDate); $minDateTime <= new DateTime($maxDate); $minDateTime->add(new DateInterval('P01D'))) {
if ($minDateTime = $myDateArray[$iterator]) {
$iterator++;
}
array_push($result, "$minDateTime=>$iterator");
}
如果我想运行此代码,我收到以下错误:
Fatal error: Call to a member function add() on a non-object in /home/pivoecom/public_html/teszt/query_test.php on line 34
第 34 行是 for 循环的开始。我阅读了 DateTime 的参考资料,我确信它有一个 add 方法。我试图在 for 循环之外用这条线添加一天,它起作用了......我做错了什么?
【问题讨论】:
-
这似乎很令人费解。尽管使用此方法stackoverflow.com/questions/9282287/… 观察到了一个看似逻辑错误,但这似乎更令人费解。如果您将
add呼叫转移到循环之外,您确定它有效吗? -
我确定。我尝试了它,因为我认为我的网络服务器上的 PHP 太旧了。但它奏效了。
标签: php arrays datetime for-loop