在我的 php.ini 中,我设置了:
date.timezone = "Etc/UTC"
服务器的时间也是UTC + 0,但是当我尝试使用此脚本获取时区时:
<?php print(date_default_timezone_get()); ?>
它返回
欧洲/柏林
是UTC+2
而不是UTC+0
,我看不到它是如何实现的。
只是为了澄清:
date()
方式UTC+0
留出时间
UTC+0
,忽略夏天/冬天答案 0 :(得分:4)
该行肯定是更改默认时区的正确位置。
你真的在改变正确的php.ini吗?某些设置可以有多个.ini文件。运行phpinfo();
并检查已加载的配置文件,看看它是否是该文件。
检查文件中是否没有该参数的其他定义。如果您只是将其复制粘贴到任何地方,它可能会覆盖您设置的内容。
检查代码是否不会覆盖您在.ini文件中设置的内容。 date_default_timezone_set()
在PHP中设置(和覆盖)。
检查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)
我建议您参考此列表以选择您的时区:
警告:请勿使用以下链接中列出的任何时区,它们仅出于向后兼容的原因而存在,除了UTC :
PHP timezones only for backward compatible reasons
强烈建议您使用适合您所在位置的时区,例如 Europe / Berlin :
date.timezone = "Europe/Berlin"
答案 4 :(得分:-1)
在php.ini文件中找到“欧洲/柏林”(使用phpinfo()获取文件的正确路径;)
在某些情况下,“ date.timezone”参数在文件中出现两次。
请确保您输入了正确的时区,从here(php时区)开始