2015-10-19 116 views
0

DateTime类(以及DatePeriod和DateInterval)似乎无法在我的当前服务器上工作。 PHP 5.3.3是按每的phpinfo页安装,当我运行get_declared_classes()函数作为数组,看看定义了什么类,这些类似乎的确存在:DateTime类不能在PHP/Apache中工作

Array ([0] => stdClass [1] => Exception [2] => ErrorException [3] => Closure [4] => DateTime [5] => DateTimeZone [6] => DateInterval [7] => DatePeriod [8] => LibXMLError...

不过,就算我跑最简单的有日期时间PHP代码,我会得到一个HTTP 500错误:

$date = new DateTime('2000-01-01'); 
echo $date->format('Y-m-d H:i:s'); 

这个老的表示形式不正常工作,

$date = date_create('2000-01-01'); 
echo date_format($date, 'Y-m-d H:i:s'); 

但由于某些原因,日期时间将无法正常工作。我在不同的服务器上使用这些DateTime对象编写了一些代码,并且它工作正常。关于我可能出现错误的想法?有没有我应该考虑的php.ini或其他设置?

-JF

+1

什么你正在使用PHP版本? –

+0

试试'echo($ date-> format(“Y-m-d H:i:s”));'而不是更好? 'echo {$ date-> format(“Y-m-d H:i:s”)};'?回声有时可以用'$ obj-> function();'; notation –

+0

@JonStory完成奇怪的事情,OP的代码完美工作(在phpfiddle.org上试用),这是因为我问了什么PHP版本正在使用。在PHP> 5.2这是可以的,在很少或许这是错误的 –

回答

1

我最好的猜测是您在命名空间中的一类使用它,因此日期时间需要一个\ 请发表您的类的更多的代码,我们可以帮助你。

因此,这是它如何可能会工作(介意反斜线\

$date = new \DateTime('2000-01-01'); 

也请您发布错误的500消息,你可能会发现它在你的服务器的error.log中。

0

我在这里有类似的问题...

这是在php.ini中的默认时区,你可以在你的脚本中使用date_default_timezone_set()或改变它在php.ini

相关问题