PHP time()是否返回GMT/UTC时间戳?

PHP time()是否返回GMT/UTC时间戳?,php,Php,我只想检查time()是否返回UTC/GMT时间戳,或者我是否需要使用date\u default\u timezone\u set()? “返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的当前时间。” 所以我相信你的问题的答案是肯定的。 “返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的当前时间。” 所以我相信你的问题的答案是肯定的。来自 返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的

我只想检查
time()
是否返回UTC/GMT时间戳,或者我是否需要使用
date\u default\u timezone\u set()

“返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的当前时间。”

所以我相信你的问题的答案是肯定的。

“返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的当前时间。”

所以我相信你的问题的答案是肯定的。

来自

返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的当前时间

返回自Unix纪元(1970年1月1日00:00:00 GMT)以来以秒为单位测量的当前时间


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       ???
后者是一个更加复杂但同样有效且富有表现力的计数器,大致从这里开始:

                          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\u default\u timezone\u set

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       ???
后者是一个更加复杂但同样有效且富有表现力的计数器,大致从这里开始:

                          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时间戳。每个人都使用相同的值