我有一个日期排序数组。我想从特定的开始日期到特定的结束日期,并且每次在数组中找到给定日期时都会增加一个变量。我试着用下面的代码片段:PHP的周期与DateTime对象
$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的开口的周期。我阅读了DateTime的参考,我确信它有一个add方法。我试图在循环之外添加这一行,并且它工作...我做错了什么?
这似乎相当令人费解。虽然看起来这个方法看起来是逻辑错误http://stackoverflow.com/questions/9282287/what-can-go-wrong-when-adding-months-with-a-dateinterval-and-datetimeadd,这似乎是更令人费解。如果你将这个'add'呼叫转移到循环之外,你确定它有效吗? – verisimilitude
我确定。我尝试过,因为我的网络服务器有一个太旧的PHP的想法。但它的工作。 – zsidanyi