如何为代码点火器设置date.timezone以使用php5.3

Sno*_*ish 25 php datetime codeigniter

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

遇到PHP错误

严重性:警告

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

文件名:controllers/helloworld.php

行号:2

当我有

date.timezone = "America/Los_Angeles"
Run Code Online (Sandbox Code Playgroud)

它给了我这个:

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

我使用的是php5.3,代码点火器2.0.0和Apache2.2.任何人都有这个问题吗?

更新1:我尝试加载没有代码点火器的test.php,其中test.php的前3行是

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

它工作正常,不同的时区也可以正常工作.所以我怀疑问题来自代码点火器......任何人在这里使用代码点火器?

Phi*_*eon 73

如果您使用Google搜索"CodeIgniter PHP 5.3",您会很快发现这篇文章:)

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

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

if( ! ini_get('date.timezone') )
{
   date_default_timezone_set('GMT');
} 
Run Code Online (Sandbox Code Playgroud)

对于在PHP 5.3上运行的任何CodeIgniter应用程序,您可能需要进行此修改,并且可以轻松地将其修改为您当地的时区.有PHP手册支持时区的完整列表在这里.

  • 你在说什么?CodeIgniter不支持PHP 5?当然它很血腥 - 我已经在PHP 5.3上多次使用CodeIgniter而没有任何问题.您在设置服务器时遇到某种错误需要处理,而不仅仅是责备/丢弃CI. (9认同)

Mav*_*elo 21

是的,如果你不能直接编辑php.ini文件,放置...

ini_set('date.timezone', 'America/New_York');
Run Code Online (Sandbox Code Playgroud)

...作为CI的第一行index.php工作正常.

参考:PHP的可用时区

  • 这对我来说很完美,我把它放在了index.php (4认同)

Pra*_*ana 8

写在你的index.php codeigniter中......

/*
|---------------------------------------------------------------
| TimeZone 
|---------------------------------------------------------------
|
| default Time Zone
| 

*/
if ( function_exists( 'date_default_timezone_set' ) )
date_default_timezone_set('Asia/Jakarta');
Run Code Online (Sandbox Code Playgroud)

在我的codeigniter中运行良好