【发布时间】:2015-09-13 06:39:10
【问题描述】:
我正在使用time() 在我的 PHP 应用程序中记录当前时间。
我在英国,所以我们使用 UTC 时区。这意味着在夏季/冬季,我们从 GMT 时区切换到 BST(即 GMT +1)。问题是,time() 仍然使用 GMT 时区,这意味着它落后了 1 小时。如何使它显示比格林威治标准时间早 1 小时的 BST 时间?
当我回显时间时,它落后了 1 小时。
我的尝试:
-
添加以下代码:
date_default_timezone_set("欧洲/伦敦");
ini_set("date.timezone", "Europe/London");
重新安装 PHP 5.5,以便更新存储时区的扩展。
谢谢
【问题讨论】:
-
time()会返回一个没有时区上下文的 unix 时间戳。它是 UTC。 -
那么你知道解决方案吗?
-
取决于您实际尝试对时间戳做什么。
-
记录用户在我的数据库中保存对象的时间。因此,为什么我需要时间,而不仅仅是日/月/年。
-
在这种情况下你不应该对它做任何事情。您应该始终以 UTC 存储日期/时间,然后您可以非常简单地在任何时区输出它们。