【发布时间】: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.net/manual/en/function.date-default-timezone-set.php设置时区。至于如何获取本地机器的时区名称,我不知道。我知道你会如何在 Linux 或 Mac 上进行操作,但不知道如何在 Windows 上进行操作。