PHPMailer date_default_timezone_get():依赖系统的时区设置是不安全的



错误:可用Erro na Linha: #3274 :: date_default_timezone_get((: 依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set(( 函数。如果您使用了其中任何一种方法,但仍然收到此警告,则很可能拼写错了时区标识符。我们目前选择了时区"UTC",但请设置 date.timezone 以选择您的时区。C:\AppServ\www\class\phpmailer.class.phpErro no envio do e-mail: SMTP connect(( failed.

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 中设置 date.timezone 来配置 PHP。.INI

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = 'Australia/Sydney'

或者通过在 yout 代码中调用 date_default_timezone_set(( 函数(在 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 — 设置所有人使用的默认时区 脚本中的日期/时间函数

date_default_timezone_get — 获取所有人使用的默认时区 脚本中的日期/时间函数

一个例子是:

date_default_timezone_set('America/Los_Angeles');
$x= date_default_timezone_get(); // 'America/Los_Angeles'

您当前正在做的是尝试请求默认时区,以便将其值用于date_default_timezone_set呼叫,但从未将其设置为开始。

最新更新