DateTime类不工作在PHP / Apache


DateTime Class not working in PHP / Apache

DateTime类(以及DatePeriod和DateInterval)似乎不能在我当前的服务器上工作。PHP 5.3.3是根据phpinfo页面安装的,当我将get_declared_classes()函数作为数组运行以查看定义了哪些类时,这些类确实存在:

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

然而,即使我用DateTime运行最简单的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不能起作用。我在不同的服务器上使用这些DateTime对象编写了一些代码,它工作得很好。关于我可能在哪里出错的想法?我是否需要考虑php。ini或其他设置?

摩根富林明

我最好的猜测是您在具有命名空间的类中使用它,因此DateTime需要'请张贴更多的代码,你的类,这样我们可以帮助你更多。

这可能就是它的工作方式(注意')

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

也请张贴您的错误信息为500。您可能会在服务器的error.log中找到它。

我在这里遇到了类似的问题…

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

中更改它。