【问题标题】:Can PHP use localhost timezone?PHP可以使用本地时区吗?
【发布时间】:2015-09-20 17:28:43
【问题描述】:

我最近在本地 Windows 机器(使用 IIS)上运行的一些 PHP 代码出现了故障。

我已经移动了时区,出现问题是因为 MySQL 使用本地机器时间来处理像 NOW() 这样的函数,但是 PHP 从 php.ini 文件(或像 date_default_timezone_set 这样的函数)确定它的时区。

我正在创建带有时间戳的记录(来自 PHP),一旦超过 15 分钟就应该删除(在 MySQL 中使用 NOW())。由于时区不同,它们总是超过 15 分钟。

我移动了一下,我可能并不总是记得将我的 php.ini 文件更新到我当前的时区。

PHP 从其 ini 文件中的 date.timezone 设置中获取其当前时区。我认为也许完全删除它会起作用,但它默认为 UTC。

我意识到一个选择是在我使用 PHP 的时间还是 MySQL 的时间时保持一致,但我很想知道是否有一种方法可以告诉 PHP 使用机器的任何时区继续运行。

谢谢

【问题讨论】:

标签: php mysql time timezone


【解决方案1】:

在 Windows 上,一种方法是使用 exec() 执行 shell 命令 tzutil /g 并读取输出,在我的例子中报告 Central Standard Time

因为这似乎不是date_default_timezone_set() 接受的格式,至少根据List of Supported Timezones,但您可以有一个简短的 Windows 输出数组和相应的 PHP 接受的时区。

【讨论】:

  • 很棒的信息。不知道tzutil。我决定最安全的选择是标准化这两个部分以使用 PHP 时间。至少这样是一致的(尽管我仍然需要注意夏令时)。
猜你喜欢
  • 2010-12-31
  • 2022-01-10
  • 1970-01-01
  • 2014-08-22
  • 1970-01-01
  • 2011-01-12
  • 2015-08-02
  • 2012-08-26
相关资源
最近更新 更多