Codeigniter电子邮件配置文件导致date()时区错误

时间:2015-12-09 11:51:54

标签: php codeigniter

Codeigniter 3.0.3 我刚在application \ config文件夹中创建了新的email.php配置文件,

我尝试在配置数组中添加1个参数,然后如果我打开我的Web应用程序,那么我会收到以下消息,

以下是配置参数,

$config = array(

'mailtype'  => 'html'

);

遇到PHP错误

Severity: Warning

Message: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.

Filename: libraries/Email.php

Line Number: 1036

如果我从数组中删除内容,则没有消息, 我不确定添加配置数组

导致此错误的原因

有什么想法吗?

谢谢,

4 个答案:

答案 0 :(得分:1)

这是因为在php配置中没有设置时区。

将以下代码行添加到php.ini文件的顶部

date.timezone = "US/Central"

重新启动网络服务器

您也可以使用以下功能通过php脚本进行设置:

date_default_timezone_set('America/Los_Angeles');

答案 1 :(得分:1)

您可能需要将时区放在php.ini文件的配置行中。你应该在php.ini文件中有一个这样的块:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York

如果没有,请添加它(由您的时区替换)。配置完成后,请确保重新启动httpd(service httpd restart)。

Here您可以找到所有支持的时区列表。

答案 2 :(得分:0)

您可以添加index.php

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

问题是你还没有设置时区

答案 3 :(得分:-1)

您需要设置服务器的时区。接下来的步骤对我有用。

您必须打开system/libraries/Email.php并找到功能 _set_date()。 将以下代码行放在函数顶部。

date_default_timezone_set('UTC'); // <-- 'UTC' is a string to define timezone

然后,函数应具有以下结构

protected function _set_date()
{
    date_default_timezone_set('UTC');
    $timezone = date('Z');
    ...
}