PHPMailer的date_default_timezone_get():这是不是安全的依靠系统的时区设置
错误:可用 埃罗呐Linha:#3274 :: date_default_timezone_get():这是不是安全的依靠系统的时区设置。您需要需要才能使用date.timezone设置或date_default_timezone_set()函数。如果您使用这些方法中的任何一种,并且仍然收到此警告,则很可能是拼写错误的时区标识符。我们现在选择了“UTC”时区,但请设置date.timezone以选择您的时区。 C:\ AppServ \ www \ class \ phpmailer.class.php Erro no envio do电子邮件:SMTP连接()失败。PHPMailer的date_default_timezone_get():这是不是安全的依靠系统的时区设置
public static function rfcDate()
{
// Set the time zone to whatever the default is to avoid 500 errors
// Will default to UTC if it's not set properly in php.ini
date_default_timezone_set(@date_default_timezone_get());
return date('D, j M Y H:i:s O');
}
PHP没有设置默认时区。
使用PHPMailer的(或者说对时区使用的任何类),你应该在php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = 'Australia/Sydney'
设置date.timezone或通过调用date_default_timezone_set()函数YOUT代码(配置PHP之前PHPMailer的前)
date_default_timezone_set('Australia/Sydney');
或在Apache的配置文件(我的首选方法)
# Timezone and other stuff for PHP
php_value date.timezone "Australia/Sydney"
你应该先以设置默认的时区使用date_default_timezone_set
,然后使用 date_default_timezone_get
检索。
date_default_timezone_set — Sets the default timezone used by all date/time functions in a script
date_default_timezone_get — Gets the default timezone used by all date/time functions in a script
一个例子是:
date_default_timezone_set('America/Los_Angeles');
$x= date_default_timezone_get(); // 'America/Los_Angeles'
什么目前你正在做的是试图请求的默认时区,为了使用它的价值为您date_default_timezone_set
电话,但它从来没有将开始使用。
问题中的代码不是用户代码。它是PHPMailer的一部分,但这个答案也是正确的。 – geekasylum