首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中获取Windows时间

在PHP中获取Windows时间
EN

Stack Overflow用户
提问于 2011-01-04 23:24:01
回答 2查看 4.4K关注 0票数 1

如何在PHP脚本中获得当前的Windows时间?

使用time()似乎不起作用,因为它是时区感知的,并且忽略DST是否真的打开了服务器。例如,如果时区设置为“America/洛杉矶”,但未选中DST (Windows ),如果今天的日期是9月1日,则windows时间可以是1PM,但是PHP time()将返回2 PM。

如何获得服务器的Windows时间?(使用PHP 5.2.14)。

再现问题

  • 将时区设置为“美国/洛杉矶”,并取消选中“日光储蓄时间”复选框。将日期设置为2010年9月1日下午4:00
  • 使用以下内容创建一个简单的PHP脚本,然后运行它

echo date_default_timezone_get(), date("H:i:s", time());

输出是美国/洛杉矶17:00。注意DST造成的1小时差异。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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问题) (他只是不告诉每个人)。

票数 2
EN

Stack Overflow用户

发布于 2011-01-05 00:35:53

date("Z")以秒为单位给出了与格林尼治时间有符号的本地偏移量。然后,可以将其添加到日期的输出中。请参阅日期函数的手册

如果不信任这些设置,也可以使用exec执行日期命令并解析输出

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4599481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档