php utc时间戳,PHP time()返回GMT/UTC时间戳吗?

time返回一个UNIX时间戳,这是与时区无关的。因为UNIX时间戳表示自1970年UTC以来的秒,你可以说它是UTC,但它真的没有时区。

为了真正清楚,UNIX时间戳在任何给定时间在世界各地是相同的值。在写作的时候,它是1296096875在东京,伦敦和纽约。要将这转换成一个“人类可读”的时间,你需要指定你要显示它在哪个时区。1296096875在东京是2011-01-27 11:54:35,在伦敦它的是2011-01-27 02:54 :35,在纽约,它是2011-01-26 21:54:35。

实际上,你通常在处理时间时处理这些概念(混合):

>绝对时间点,我喜欢在人类历史上称为点

>本地时间,我喜欢把它称为挂钟时间

>以表达人类历史中的绝对点的任何格式完成时间戳

>不完全本地挂钟时间

可视化时间如下:

-------+-------------------+-------+--------+----------------+------>

| | | | |

Dinosaurs died Jesus born Y2K Mars colonised ???

(不按比例)

该线上的绝对点可以表示为:

> 1296096875

> 2011年1月27日02:54:35欧洲/伦敦

两种格式在不同的符号中表示相同的绝对时间点。前者是一个简单的计数器,大致从这里开始:

start of UNIX epoch

|

-------+-------------------+------++--------+----------------+------>

| | | | |

Dinosaurs died Jesus born Y2K Mars colonised ???

后者是一个更复杂但同样有效和表达的计数器,大致从这里开始:

start of Gregorian calendar

|

-------+-------------------+-------+--------+----------------+------>

| | | | |

Dinosaurs died Jesus born Y2K Mars colonised ???

UNIX时间戳很简单。它们是一个计数器,它在一个特定的时间点开始,并且每秒增加1(对于第二个的官方定义)。想象一下,在伦敦的一个人在1970年1月1日午夜开始了一个秒表,它仍在运行。这或多或少是UNIX时间戳是什么。每个人都使用相同的值那个秒表。

人类可读的壁钟时间更复杂,它的更复杂的事实,它的缩写和部分它在日常使用中省略。 02:54:35意味着上面的时间轴几乎没有。 2011年1月27日02:54:35已经很多更具体,但仍然可以意味着在这一线上的各种不同的点。 “当时钟在2011年1月27日02:54:35在伦敦,欧洲”现在终于是一个明确的绝对点在这一行,因为只有一个时间点,这是真的。

因此,时区是“挂钟时间”的“修改器”,它是使用日历和小时/分钟/秒表示法来表示唯一的绝对时间点所必需的。没有时区,这种格式的时间戳是不明确的,因为时钟在2011年1月27日02:54:35在不同时间在世界各地的每个国家。

UNIX时间戳本质上没有这个问题。

要将UNIX时间戳转换为人类可读的挂钟时间,您需要指定希望显示时间的时区。要将挂钟时间转换为UNIX时间戳,您需要知道哪个时区的挂钟时间应该是在你。你必须在每次这样的转换包括时区,或者你设置默认时区使用date_default_timezone_set。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值