我最近在本地 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 使用它所在机器的任何时区继续运行。
谢谢
最佳答案
在 Windows 上,一种方法是使用 exec()
执行 shell 命令 tzutil/g
并读取输出,在我的例子中报告 Central标准时间
。
因为这似乎不是 date_default_timezone_set()
可接受的格式,至少根据 List of Supported Timezones , 但您可能有一小段 Windows 输出和相应的 PHP 接受的时区。
关于php - PHP 可以使用本地主机时区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31197199/