php中date和gmdate的区别


date — 格式化一个本地时间/日期 gmdate — 格式化一个 GMT/UTC 日期/时间,返回的是格林威治标准时(GMT)。
查找相关文章:gmdate date php

PHP中的时间有2个格式化函数:date()和gmdate(),在官方的文档中的描述为:

date — 格式化一个本地时间/日期 

gmdate — 格式化一个 GMT/UTC 日期/时间,返回的是格林威治标准时(GMT)。

举个例子,我们现在所在的时区是+8,那么服务器运行以下脚本返回的时间应该是这样的:

当前时间假定是2007-03-14 12:15:27

echo date(‘Y-m-d H:i:s’, time()); 输出为:2007-03-14 12:15:27

echo gmdate(‘Y-m-d H:i:s’, time()); 输出为:2007-03-14 04:15:27

time() :标准时间戳

  指返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间(指的是当前GMT标准时间)的秒数,它的值跟php系统设置的时区无关。 

date():返回的是当前 GMT标准时间的本地化时间的“自定义格式”时间,跟php系统设置的时区有关。

gmdate():返回的是当前 GMT标准时间的“自定义格式”时间,跟php系统设置的时区无关。

在任意地区访问 date:都将返回相同的时间,而且是服务器php系统设置的时区的时间

gmdate返回的是返回的是格林威治标准时间,为了显示用户所在时区的正确时间,我们需要获取或者用户自行设置时区

$time_zone = -5;
echo gmdate('Y-m-d H:i:s',time()+$time_zone*3600);

这2个函数分别什么时候用,我的理解是这样:

显示统一时间的时候 用date

显示用户所在时区的时间的时候 用gmdate