使用time()时PHP时区不正确

使用time()时PHP时区不正确,php,time,timezone,utc,Php,Time,Timezone,Utc,我正在使用time()在PHP应用程序中记录当前时间 我的总部在英国,所以我们使用UTC时区。这意味着在夏季/冬季,我们从GMT时区切换到BST(即GMT+1)。问题是,time()仍然使用GMT时区,这意味着它落后1小时。如何使其显示比格林尼治标准时间提前1小时的英国夏令时时间 当我回显时间时,它落后了1个小时 我尝试过的: 添加以下代码段: 日期默认时区设置(“欧洲/伦敦”) ini_集合(“日期、时区”、“欧洲/伦敦”) 重新安装PHP5.5,以便更新存储时区的扩展 谢谢你找到了我的解

我正在使用
time()
在PHP应用程序中记录当前时间

我的总部在英国,所以我们使用UTC时区。这意味着在夏季/冬季,我们从GMT时区切换到BST(即GMT+1)。问题是,
time()
仍然使用GMT时区,这意味着它落后1小时。如何使其显示比格林尼治标准时间提前1小时的英国夏令时时间

当我回显时间时,它落后了1个小时

我尝试过的:

  • 添加以下代码段:

    日期默认时区设置(“欧洲/伦敦”)

    ini_集合(“日期、时区”、“欧洲/伦敦”)

  • 重新安装PHP5.5,以便更新存储时区的扩展

谢谢你找到了我的解决方案

问题不在于time(),因为它只比日期晚了几秒钟

来显示日期时,不要使用
gmdate()
而要使用
date()

这将考虑您在文档/ini文件中设置的任何默认时区。

使用
gmdate()

string gmdate(string$format[,int$timestamp=time()])


time()
返回一个没有时区上下文的unix时间戳。它是UTC格式的。那么您知道解决方案吗?取决于您实际尝试如何处理时间戳。记录用户在我的数据库中保存对象的时间。因此,我需要时间,而不仅仅是日/月/年。在这种情况下,你不应该用它做任何事情。您应该始终以UTC格式存储日期/时间,然后您可以非常简单地在任何时区输出它们。实际上,我已经在使用gmdate,但它不起作用。我一开始使用date(),它就注意到我的时区配置