【问题标题】:PHP Warning: Unknown: It is not safe to rely on the system's timezone settingsPHP 警告:未知:依赖系统的时区设置是不安全的
【发布时间】:2017-12-07 12:51:33
【问题描述】:

当我使用 php -i 时出现以下错误

日期

日期/时间支持 => 启用“Olson”时区数据库版本 => 0.system 时区数据库 => 内部 PHP 警告:未知:依赖系统的时区设置是不安全的。
必须使用 date.timezone 设置或 date_default_timezon
e_set() 函数。如果您使用了这些方法中的任何一种并且您是 还在继续
g 此警告,您很可能拼错了时区标识符。我们 已选择
'UTC' 代表 'UTC/0.0/no DST' 而不是在第 0 行的 Unknown 默认 时区 => UTC

指令 => 本地值 => 主值 date.default_latitude => 31.7667 => 31.7667 date.default_longitude => 35.2333 => 35.2333 date.sunrise_zenith => 90.583333 => 90.583333 date.sunset_zenith => 90.583333 => 90.583333 date.timezone => America/Los_Angeles => America/Los_Angeles

我的 /etc/php.ini 有以下设置

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = America/Los_Angeles

; http://www.php.net/manual/en/datetime.configuration.php#ini.date.default-latitude
;date.default_latitude = 31.7667

; http://www.php.net/manual/en/datetime.configuration.php#ini.date.default-longitude
;date.default_longitude = 35.2333

; http://www.php.net/manual/en/datetime.configuration.php#ini.date.sunrise-zenith
;date.sunrise_zenith = 90.583333

; http://www.php.net/manual/en/datetime.configuration.php#ini.date.sunset-zenith
;date.sunset_zenith = 90.583333

PHP版本详情如下

PHP 5.3.3 (cli)(构建时间:2013 年 12 月 5 日 07:09:40)版权所有 (c) 1997-2010 PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2010 Zend 技术

Apache 版本如下

服务器版本:Apache/2.2.15 (Unix) 服务器构建时间:2014 年 7 月 18 日 02:31:29

我已经多次重启 Apache

【问题讨论】:

  • 你能做到phpinfo()并显示php.ini文件的路径吗?
  • 当您从命令提示符运行php -i 时,Apache 根本不参与。
  • 它是/etc/php.ini
  • @ÁlvaroGonzález - 同意,但两种情况下的错误都是一样的
  • 试试这个date.timezone = "America/Los_Angeles",加上双引号。

标签: php apache


【解决方案1】:

更改date.timezone = UTC 然后运行命令sudo service httpd restart

【讨论】:

  • 同样的错误。只有最后一行更改为 date.timezone => UTC => UTC
  • 在设置 date.timezone=UTC 后也运行“sudo apache2 restart”命令
【解决方案2】:

您可以在 PHP 文件中使用:

date_default_timezone_set( "YOUR DATE TIME ZONE");

例如:

date_default_timezone_set( "Europe/Berlin");

时区列表:http://php.net/manual/en/timezones.php

或者如果您希望继续使用服务器时区但想隐藏警告,请使用:

ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ERROR);

【讨论】:

    猜你喜欢
    • 2016-07-22
    • 1970-01-01
    • 2011-03-20
    • 2011-08-27
    • 2019-06-22
    • 1970-01-01
    • 2011-08-07
    • 2012-09-14
    • 2015-07-13
    相关资源
    最近更新 更多