如何在PHP脚本中获得当前的Windows时间?
使用time()似乎不起作用,因为它是时区感知的,并且忽略DST是否真的打开了服务器。例如,如果时区设置为“America/洛杉矶”,但未选中DST (Windows ),如果今天的日期是9月1日,则windows时间可以是1PM,但是PHP time()将返回2 PM。
如何获得服务器的Windows时间?(使用PHP 5.2.14)。
再现问题
echo date_default_timezone_get(), date("H:i:s", time());
输出是美国/洛杉矶17:00。注意DST造成的1小时差异。
发布于 2011-01-05 01:26:07
我认为PHP没有考虑Windows设置。时区按照定义的标准进行解释。另外,根据上次出现的情况:即使在设置时区之后,夏令时也不正确。
但请参阅http://php.net/manual/en/function.date-default-timezone-set.php
有一些示例代码使用WShell查询Win注册表中的实际值,包括DST标志。然后使用timezone_abbreviations_list(),您可以找到一个具有正确时区名称和DST标志的别名,设置如下。
此外,@Pekka还有另一个手动解决方案:php date()比服务器时间提前一小时(DST问题) (他只是不告诉每个人)。
发布于 2011-01-05 00:35:53
date("Z")以秒为单位给出了与格林尼治时间有符号的本地偏移量。然后,可以将其添加到日期的输出中。请参阅日期函数的手册
如果不信任这些设置,也可以使用exec执行日期命令并解析输出
https://stackoverflow.com/questions/4599481
复制相似问题