php.ini'date.timezone'没有任何效果

时间:2016-05-02 07:24:08

标签: php datetime time timezone

在我的 php.ini 中,我设置了:

date.timezone = "Etc/UTC"

服务器的时间也是UTC + 0,但是当我尝试使用此脚本获取时区时:

<?php print(date_default_timezone_get()); ?>

它返回

  

欧洲/柏林

UTC+2而不是UTC+0,我看不到它是如何实现的。

只是为了澄清:

  • 我已将正确的文件保存在正确的路径并重新启动了我的服务器
  • 我不想修改我的脚本,因为我已经经常使用date()方式
  • 我希望通过更改配置
  • 来为PHP UTC+0留出时间
  • 我希望它始终是UTC+0,忽略夏天/冬天

5 个答案:

答案 0 :(得分:4)

该行肯定是更改默认时区的正确位置。

  1. 你真的在改变正确的php.ini吗?某些设置可以有多个.ini文件。运行phpinfo();并检查已加载的配置文件,看看它是否是该文件。

  2. 检查文件中是否没有该参数的其他定义。如果您只是将其复制粘贴到任何地方,它可能会覆盖您设置的内容。

  3. 检查代码是否不会覆盖您在.ini文件中设置的内容。 date_default_timezone_set()在PHP中设置(和覆盖)。

  4. 检查phpinfo()以获取有关当前时区的更多信息。

答案 1 :(得分:1)

你检查了&#34; TZ&#34;您的Web服务器用户的环境变量?如果已设置,则date.timezone php.init设置将无法按预期工作,如php manual中所述:

  

date.timezone字符串   所有日期/时间函数使用的默认时区。在PHP 5.4.0之前,这仅在未设置TZ环境变量时才有效。如果没有明确提及,则使用时区的优先顺序在date_default_timezone_get()页面中描述。

答案 2 :(得分:1)

在评论中,Minesh Patel告诉我检查是否有覆盖我选项的内容,所以我通过 php.ini 搜索了Europe/Berlin,结果发现是另一个date.timezone - 覆盖它的条目。

答案 3 :(得分:0)

我建议您参考此列表以选择您的时区:

PHP timezones

警告:请勿使用以下链接中列出的任何时区,它们仅出于向后兼容的原因而存在,除了UTC

PHP timezones only for backward compatible reasons

强烈建议您使用适合您所在位置的时区,例如 Europe / Berlin

date.timezone = "Europe/Berlin"

答案 4 :(得分:-1)

在php.ini文件中找到“欧洲/柏林”(使用phpinfo()获取文件的正确路径;)

在某些情况下,“ date.timezone”参数在文件中出现两次。

请确保您输入了正确的时区,从here(php时区)开始