突然收到錯誤消息Fatal error: Call to a member function setTimezone() on a non-object
添加代碼一些新行後::調用一個成員函數setTimezone()非對象上
首先,我使用的日期時間不同timeformats之間切換計算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
}
此代碼的工作很好,直到現在:
我加入20行代碼上方的其他日期時間函數[碼塊2]:
$ts=new DateTime("@".round($_GET['startdate']/1000));
$startdate=$ts->format('Y-m-d\TH:i:s.u\Z');
後我添加這些2行,所有時間i得到錯誤:Fatal error: Call to a member function setTimezone()
此訂單:$timestamp->setTimezone(new DateTimeZone('Europe/Berlin'));
...但我不能看到這些代碼部分之間的關系/連接?!
這裏發生了什麼?
謝謝你的任何想法。
//更新:你可以在註釋中看到,我使用的PHP 5.3.6 再次:代碼塊1級的作品,如果我刪除代碼塊2
您運行的是哪個版本的PHP? DateTime對象是在PHP 5.2.0之後添加的 - http://us.php.net/manual/en/datetime.settimezone.php – barfoon
當您執行'var_dump($ timestamp);'時會發生什麼? – barfoon
'var_dump($ timestamp)'在設置時區之前。你得到了什麼? 'createFromFormat'僅在5.3中添加到PHP中。 – Treffynnon