2013-10-25 86 views
3

我一直在阅读有关SO的所有相关问题,但我仍然不明白我的错误在哪里。致命错误:调用非对象的成员函数格式()

在我的WordPress网站我有,我需要显示日期的帖子,我用这个代码:

$date = DateTime::createFromFormat('Ymd', '20071005'); 
/*error here*/ $year = $date->format('Y'); 
echo $year; 

的信息是正确显示和我的代码在我看来,连贯面向对象的风格。然而,我无法摆脱此消息:

Fatal error: Call to a member function format() on a non-object in 
/homez.763/frommeto/www/temp/wp-content/themes/fmty/page-listspace.php on line 23 

你能看到,如果有什么事,真的错了吗?可能它与服务器运行的PHP版本有关?我使用PHP 5.4.1

编辑

的var_dump($ date)返回

object(DateTime)#84 (3) { 
    ["date"]=> 
    string(19) "2007-10-05 10:44:57" 
    ["timezone_type"]=> 
    int(3) 
    ["timezone"]=> 
    string(3) "UTC" 
} 
+0

代码本身应该可以正常工作(请参阅[this](http://codepad.viper-7.com/EJZXrS))。它必须是一个配置问题。 – NullUserException

+0

你的代码,运行良好在我的pc.my php版本是5.4.16.try在php.ini中设置时区 – Ramin

+0

如果你添加'print_r(DateTime :: getLastErrors());'紧跟'$ date = DateTime :: createFromFormat('Ymd','20071005');'输出任何错误? – 2013-12-09 07:56:09

回答

1

我复制并粘贴您的代码和它的工作就好了。我使用php5.4.11.

如果你正在做的是试图显示年份,因为在你的榜样,您可以使用strtotime()date()

$date = strtotime('20071005') ; 
$year = date('Y', $date) ; 

或者,更简洁:

$year = date('Y',strtotime('20071005')) ; 
相关问题