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.php Erro no envio do e-mail: Ошибка SMTP connect().

public static function rfcDate()
{
    // Set the time zone to whatever the default is to avoid 500 errors
    // Will default to UTC if it not set properly in php.ini
    date_default_timezone_set(@date_default_timezone_get());
    return date('D, j M Y H:i:s O');
}
0
17 июня '17 в 20:41
источник поделиться
2 ответов

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'

или путем вызова функции date_default_timezone_set() в коде yout (перед PHPMailer)

date_default_timezone_set('Australia/Sydney');

или в конфигурационных файлах apache (мой предпочтительный метод)

# Timezone and other stuff for PHP
php_value date.timezone "Australia/Sydney"
0
17 июня '17 в 21:15
источник

Вы должны сначала использовать 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, но он никогда не начинался.

0
17 июня '17 в 20:46
источник

Посмотрите другие вопросы по меткам или Задайте вопрос