PHP.ini 'date.timezone'没有任何影响



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

date.timezone = "Etc/UTC"

服务器的时间也是UTC+0,但当我尝试这个脚本来获取时区时:

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

它返回

欧洲/柏林

它是CCD_ 1而不是CCD_。

只是为了澄清:

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

这一行当然是更改默认时区的正确位置。

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

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

  3. 检查代码是否没有覆盖您在.ini文件中设置的内容。date_default_timezone_set()在PHP中设置(和重写)它。

  4. 查看phpinfo()了解有关当前时区的更多信息。

在评论中,Minesh Patel告诉我检查是否有东西覆盖了我的选项,所以我在php.ini中搜索Europe/Berlin,结果发现还有另一个UTC+20条目覆盖了它。

您是否检查了web服务器用户的"TZ"环境变量?如果设置了,date.timezone php.init设置将无法按预期工作,如php手册中所述:

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

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

PHP时区

警告:不要使用以下链接中列出的任何时区,它们只存在于向后兼容的原因,除UTC外

PHP时区仅用于向后兼容原因

强烈建议您使用您所在位置的正确时区,如欧洲/柏林

date.timezone = "Europe/Berlin"

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

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

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

相关内容

  • 没有找到相关文章

最新更新