在我的php.ini中,我设置了:
date.timezone = "Etc/UTC"
服务器的时间也是UTC+0,但当我尝试这个脚本来获取时区时:
<?php print(date_default_timezone_get()); ?>
它返回
欧洲/柏林
它是CCD_ 1而不是CCD_。
只是为了澄清:
- 我已将正确的文件保存在正确的路径并重新启动服务器
- 我不想修改我的脚本,因为我已经经常使用
date()
的方式 - 我希望通过更改配置将时间设置为PHP的
UTC+0
- 我希望它在任何时候都是
UTC+0
,忽略夏季/冬季
这一行当然是更改默认时区的正确位置。
-
你真的在更改正确的php.ini吗?某些设置可以有多个.ini文件。运行
phpinfo();
并检查加载的配置文件以查看是否为该文件。 -
检查文件中是否没有该参数的其他定义。如果您只是将其复制粘贴到任何位置,它可能会覆盖您设置的内容。
-
检查代码是否没有覆盖您在.ini文件中设置的内容。
date_default_timezone_set()
在PHP中设置(和重写)它。 -
查看
phpinfo()
了解有关当前时区的更多信息。
在评论中,Minesh Patel告诉我检查是否有东西覆盖了我的选项,所以我在php.ini中搜索Europe/Berlin
,结果发现还有另一个UTC+2
0条目覆盖了它。
您是否检查了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时区)