我不明白为什么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
我如何获得格林威治的当前时间?以日期("0")计算?还有别的办法吗?
因为时间永远不会改变——从epoch (GMT)开始一直是秒。
时间总是一样的。这只是你的时区不同,这就是显示日期不同的原因。
你可以改变你的时区,以便看到不同地区的时间。
查看所有日期/时间函数
很久以前,人们需要一种方法来确定统一的多个计算系统之间的时间。前互联网时代的计算联合会长老理事会(简称CSCWE)决定了这一点。一次无记名投票决定将1970年定为任意的起点,以预示着更先进的计算时代的到来。因此,从那一刻起,几十年来,一场以秒为单位的无休止的行军开始了,随着秒的稳定节拍,计算革命的新时代开始了。
从这个任意定义的开始,所有的计算时间都可以通过对这个不断增加的秒数运行数学魔法来确定,然后考虑时区。
它已经回答了,但是如果你想获得本地时间和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