了解gmtime的返回值

时间:2011-07-18 17:57:58

标签: php timezone

如果我的服务器未配置为格林威治标准时间,我无法理解为什么gmdate()date()重新获得相同的值。

为什么会这样?

echo time();                 // 1311011114
echo date("U");              // 1311011114
echo gmdate("U");            // 1311011114


echo date("j-m-y H:m:s");    // 18-07-11 12:07:14
echo date("e");              // America/Chicago
echo date("O");              // -0500
echo date("T");              // CDT

更新
我如何获得格林威治的当前时间?用日期计算(“O”)?还有其他方式吗?

3 个答案:

答案 0 :(得分:5)

因为时间永远不会改变 - 所以它始终是纪元(GMT)以来的秒数。

时间总是一样的。只是你的时区不同,这就是显示日期的不同。

您可以更改时区以查看不同区域的时间。

有关所有日期/时间功能

,请参阅here

答案 1 :(得分:2)

很久以前,人们需要一种方法来确定穿制服的多个计算系统的时间。互联网时代之前的智慧长老计算委员会(简称CSCWE)是决定这一点的人。无记名投票决定了1970年的任意起点,预示着一个更加先进的计算时代。因此,从那一刻开始,几十年来无休止的几秒钟开始了,这是计算机革命的新时代,并且稳定的秒数。

从这个任意定义的开始,所有的计算时间都可以通过对这个不断增加的秒数运行数学魔法来确定,然后考虑时区。

答案 2 :(得分:0)

已经回答,但是如果你想获得当地时间和UTC时间;

date_default_timezone_set('America/Chicago');

$format = 'Y-m-d H:i:s';
$time1  = time();
$time2  = strtotime(gmdate($format));

print date($format, $time1);
print date($format, $time2);

// 2014-07-24 17:31:23
// 2014-07-24 22:31:23