phpinfo日期设置来自哪里?

时间:2018-08-01 12:31:50

标签: php datetime

当我输入php -i时,我得到以下信息:

date

date/time support => enabled
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => America/New_York

这些设置来自哪里,它们是否影响日期时间函数的行为?

例如,尽管the docs中的内容date_default_timezone_get在没有任何警告的情况下返回给我America/New_York,却忽略了我的date.timezone => no valuedate_default_timezone_set不适用。受Default timezone => America/New_York影响吗?

The comment暗示这是Ubuntu特定的行为。是吗?

NB。 我观察到两种配置的行为:Ubuntu 16.04 + php 7.2.7Debian 8.7 + php 5.6.30

1 个答案:

答案 0 :(得分:-1)

PHP的配置来自.ini文件。您的计算机上可能安装了多个版本的PHP。在我将<?php phpinfo();exit;作为文件中的整个代码放到的屏幕截图下方。

enter image description here

这显示了我在Xampp中使用PHP安装方式的“已加载配置文件”。

phpinfo()输出中检查相同的条目,然后找出条目。然后检查该文件。

就我而言(在搜索“时区”时),我有这个:

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

未使用此部分。因此,继续寻找,某个地方有一个值或一个配置。在我的后面我会这样:

[Date]
date.timezone=Europe/Berlin

此外,请看一下getset时区的PHP函数。

get函数(date_default_timezone_get())的获取时区如下:

  

按照优先顺序,此函数通过以下方式返回默认时区:

     
      
  • 使用date_default_timezone_set()读取时区设置   功能(如果有)

  •   
  • 仅在PHP 5.4.0之前:读取TZ环境变量(如果不是)   空)

  •   
  • 读取date.timezone ini选项的值(如果已设置)

  •   
  • 仅在PHP 5.4.0之前:查询主机操作系统(如果   操作系统支持和允许)。这使用的算法必须   猜时区。这绝不是为了   每种情况。达到此阶段时,将显示警告。不要   依靠它来正确猜测,并将date.timezone设置为   改为正确的时区。

  •   
     

如果以上方法均未成功,则date_default_timezone_get()将返回   UTC的默认时区。