在添加一些新代码后,我突然收到错误消息Fatal error: Call to a member function setTimezone() on a non-object
:
首先,我使用DateTime在不同的时间格式之间切换来计算DST等。
我使用了以下代码[代码块1]
foreach ($result as $k=>$v)
{$timestamp=DateTime::createFromFormat('Y-m-d\TH:i:s.u\Z', $k,new DateTimeZone("UTC")); //take current date from $k as new DateTile Object
$timestamp->setTimezone(new DateTimeZone('Europe/Berlin')); //convert timezone
$date[]=$timestamp->format('Y-m-d H:i:s'); // "export" the date to date-array
}
此代码运行良好,直到现在:
我在另一个DateTime函数[代码块2]上面添加了20个代码行:
$ts=new DateTime("@".round($_GET['startdate']/1000));
$startdate=$ts->format('Y-m-d\TH:i:s.u\Z');
在我添加这两行后,我始终收到错误:Fatal error: Call to a member function setTimezone()
此行:$timestamp->setTimezone(new DateTimeZone('Europe/Berlin'));
...但我看不到这些与代码部分之间的关系/联系?!
这里发生了什么?
谢谢,任何想法。
//更新:正如您在评论中看到的那样,我正在使用PHP 5.3.6 再次:代码块1工作,如果我删除代码块2
答案 0 :(得分:2)
看起来$result
的所有数组键都不是有效的日期字符串。 DateTime类在失败时返回新的DateTime实例或FALSE。当$k
无效时,$timestamp
为false,这不是对象。