43

UNIX时间戳总是在格林威治标准时间?

我试图运行 php 函数 time()

当我尝试从 time() 函数转换 unix 时间戳时,输出与计算机时间不同。

谢谢你

4

5 回答 5

72

是的,UNIX时间戳表示从unix时间纪元过去多少秒GMT+0

于 2010-05-18T01:09:58.380 回答
10

从技术上讲,没有。

即使纪元时间是经过的秒数,因为真正1/1/70 00:00:00“GMT”(UTC)不是。

考虑到地球自转的速度减慢, UTC时间需要更改几次。

正如大家所写,大多数人在 UTC 使用 epoch。

您可以在https://en.wikipedia.org/wiki/Unix_time阅读更多内容。

于 2017-09-03T07:10:05.933 回答
7

UNIX 时间戳(AKA Unix 的纪元)表示自 1970 年 1 月 1 日 00:00:00 UTC(世界标准时间)以来经过的秒数。所以,如果你需要特定时区的时间,你应该转换它。

尽管在技术上是可行的,但我会推荐其他方法来获取当前时间(或任何其他时间),例如getdate在返回之前已经考虑本地时区。

于 2010-05-18T01:10:58.827 回答
6

是的,time应该返回 UTC。如果您想将其转换为当地时间,您需要一个类似的函数,...,嗯,让我想,..,是的,就是这样,localtime:-)

这将为您提供一个更有用的表单,其中包含各个字段。

按照上面的链接查看每个链接的 PHP 文档。不确定PHP是否具有gmtime等价物。


而且,顺便说一句,在网上搜索time手册页时要非常小心man time——你可能不会得到你所期望的。如果您正在寻找自己的手册页,您肯定man不会得到您所期望的:man man.

也就是说,除非您正在寻找与我不同的东西:-)

于 2010-05-18T01:18:20.633 回答
0

检查date_default_timezone_get()的返回值以查看默认时区是什么。该链接还列出了更改值的方法,首选是通过在 php.ini 中设置 date.timezone。

于 2010-09-16T18:12:26.703 回答