当php.ini中的date.timezone被注释掉时,它会给我:
遇到PHP错误
严重性:警告
消息:main():不安全 依赖系统的时区 设置。您必需才能使用 date.timezone设置或 date_default_timezone_set()函数。 如果您使用任何这些方法 而你仍然得到这个 警告,你很可能拼写错误 时区标识符。我们选择了 'America / Los_Angeles'代表'-8.0 /不 DST'而不是
文件名:controllers / 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的test.php,其中test.php的前3行是
date_default_timezone_set('America/Los_Angeles');
echo date("l j \of F Y h:i:s A");
它工作正常,不同的时区也可以正常工作。 所以我怀疑问题来自CodeIgniter。
答案 0 :(得分: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');
}
对于在PHP 5.3上运行的任何CodeIgniter应用程序,您可能需要进行此修改,并且可以轻松地将其修改为您当地的时区。 PHP手册here中有完整的受支持时区列表。
答案 1 :(得分:21)
是的,如果您无法直接编辑php.ini文件,请放置......
ini_set('date.timezone', 'America/New_York');
...作为CI的第一行index.php工作正常。
答案 2 :(得分:8)
写入index.php codeigniter ...
/*
|---------------------------------------------------------------
| TimeZone
|---------------------------------------------------------------
|
| default Time Zone
|
*/
if ( function_exists( 'date_default_timezone_set' ) )
date_default_timezone_set('Asia/Jakarta');
在我的codeigniter中运行良好
答案 3 :(得分:4)
这是一种简单的方法
$timezone = "Asia/Calcutta";
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
//echo date('d-m-Y H:i:s');
$localtime=date('H:i:s');
$sql="INSERT INTO hits (ip,edate,curtime,page_name) VALUES ('$ip', CURDATE(),'$localtime','$filename') ";
答案 4 :(得分:3)
date.timezone旨在包含在您的php.ini或.htaccess文件中。
您可以在脚本的第一行中执行ini_set('date.timezone', 'America/Los_Angeles');
并获得所需的结果。