【问题标题】:incorrect date.timezone setting that came with MAMPMAMP 附带的错误 date.timezone 设置
【发布时间】:2014-02-24 14:44:52
【问题描述】:

我将 php.ini 中的 date.timezone(实际上我在整个 MAMP 文件夹中的 php.ini 文件的所有 9 个实例中都这样做了)从“Europe/Berlin”更改为“Europe/London”,从那时起我得到了MAMP phpinfo 中的此警告

警告:phpinfo():依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们现在选择时区“UTC”,但请设置 date.timezone 以选择您的时区。在第 2 行的 /Applications/MAMP/bin/mamp/phpinfo.php 中

另外,当我尝试在我的脚本浏览器中使用 DateTime 时,会出现以下情况: 致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__construct(): 依赖系统的时区设置是不安全的......

我猜我没有更改正确的 php.ini 实例?

【问题讨论】:

  • 致电phpinfo() 了解实际使用的是哪个php.ini。路径应该是打印的第一行之一。
  • Dude, where's my php.ini? 的可能重复项
  • 注意,修改php.ini后需要重启Apache。
  • 我已经做到了。现在是 5.4.10。我遵循了正确的路径,它在 php.ini 文件中的时区设置为“欧洲/伦敦”,但它仍然给我同样的警告/致命错误
  • Re: 重新启动 Apache - 我在 MAMP 中重新启动了本地 Apache 服务器,但仍然没有任何乐趣。

标签: php date datetime


【解决方案1】:

来自错误信息:

...如果您使用了这些方法中的任何一种,但仍然收到此警告,则您很可能拼错了时区标识符。 ...

如果在您进行更改之前它没有出错,而现在又出错了,那么这是最可能的解释。非常仔细地检查它是否准确:

date.timezone = "Europe/London"

【讨论】:

  • @Matt Johnson 感谢您抽出宝贵时间,Matt。是的,我检查并再次检查,以防万一。这是 php.ini 中完整的 Date 段落: [Date] ;定义日期函数使用的默认时区;将由 MAMP 更改为系统时区 date.timezone = "Europe/London"
  • 在网上搜索时,我发现一些地方显示使用引号,而其他地方则省略了它们。如果省略引号,它会起作用吗?另外,行上是否有多余的空格或制表符?
  • 我省略了引号(它们一开始就在那里),什么也没发生。然后我把它们放回去,瞧!一切正常。我仍然不知道一开始出了什么问题,以及我是如何解决的。无论如何,马特,迈克尔,谢谢你的时间。我愿意接受你的两个答案!
  • 也许您是从使用花哨的引号 (“ ”) 而不是普通引号 (" ") 的地方复制的?
  • 现在,这不仅是对这个小谜团的合理解释,也是对复制粘贴旅的重要教训(天知道我是多么努力地试图摆脱它的铁腕)。谢谢你的关闭,马特。
猜你喜欢
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 2016-04-23
  • 2017-06-07
相关资源
最近更新 更多