如何设置 date.timezone 以便 CodeIgniter 使用 php 5.3

2022-08-30 15:46:17

当php.ini中的date.timezone被注释掉时,它给了我:

遇到 PHP 错误

严重性:警告

消息:main():依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能拼写错误的时区标识符。我们为“-8.0/无 DST”选择了“美国/Los_Angeles”

文件名:控制器/helloworld.php

行号: 2

当我有

date.timezone = "America/Los_Angeles"

它给了我这个:

服务器错误 网站在检索 http://localhost/ci/index.php/helloworld 时遇到错误。它可能因维护而关闭或配置不正确。以下是一些建议:稍后重新加载此网页。HTTP 错误 500(内部服务器错误):服务器尝试满足请求时遇到意外情况。

我使用的是php 5.3,CodeIgniter 2.0.0和Apache 2.2。

更新1:我尝试在没有CodeIgniter的情况下加载测试.php,其中测试的前3行是.php

date_default_timezone_set('America/Los_Angeles');
echo date("l j \of F Y h:i:s A");

而且它工作正常,不同的时区也工作正常。所以我怀疑问题出在CodeIgniter上。


答案 1

如果你在谷歌上搜索“CodeIgniter PHP 5.3”,你会很快发现这篇文章:)

http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3

要解决此问题,您只需要编辑 CodeIgniter 应用程序的主索引.php:

if( ! ini_get('date.timezone') )
{
   date_default_timezone_set('GMT');
} 

对于在 PHP 5.3 上运行的任何 CodeIgniter 应用程序,您可能需要进行此修改,并且可以轻松修改为本地时区。PHP 手册中有一个完整的受支持时区列表 请点击此处。.


答案 2

是的,如果您无法直接编辑php.ini文件,则放置...

ini_set('date.timezone', 'America/New_York');

...作为CI索引中的第一行.php工作正常。

参考:PHP 的可用时区


推荐