我花了几天时间试图谷歌它没有运气。 我有一个日期存储在字符串$ dob ='2012-10-06 10:45:45 +0000'; 我正在尝试使用以下代码将其转换为日期:
$timezone = 'Europe/Brussels';
$d = DateTime::createFromFormat("Y-m-d H:i:s P",$dob ,new DateTimeZone($timezone));
echo $d->format("Y-m-d");
但是我收到以下错误消息: 致命错误:在非对象上调用成员函数format() 如何按以下格式从字符串创建DateTime:2012-10-06 10:45:45 +0000? 谢谢你的帮助...
答案 0 :(得分:4)
您的日期中看起来有些空格不在您的模式中。另外,P => O因为P有一个冒号,其中O只有4位数。
请尝试"Y-m-d H: i: s O"
。
您可能会收到错误,因为createFromFormat()失败并且您实际上在$ d中没有DateTime对象。
如果不能解决问题,请查看DateTime::getLastErrors()。这可以帮助解释这个问题。
这是一个指向PHP沙箱的链接,我的建议有效:http://sandbox.onlinephpfunctions.com/code/ee06a025fb9ab47f136eba221382c8b2f84be703
您必须单击代码下方的运行按钮。
答案 1 :(得分:-1)
YY-MM-DD HH: II: SS tzcorrection