2

我花了这几天,并试图用谷歌搜索它,但没有运气。我有一个日期存储在字符串 $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 ? 谢谢你的帮助...

4

2 回答 2

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

您必须单击代码下方的运行按钮。

于 2012-10-17T00:06:12.453 回答
-1
YY-MM-DD HH: II: SS tzcorrection
于 2012-10-17T00:13:11.870 回答