由于网站的一些原因,特地去查了下这个问题。


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

    现在所在的时区是+8,那么服务器运行以下脚本返回的时间应该为:
    当前时间假定是2020-02-28 14:18:25

echo date('Y-m-d H:i:s', time()); 输出为:2020-02-28 14:18:25
echo gmdate('Y-m-d H:i:s', time()); 输出为:2020-02-28 06:18:25
//服务器需要设定时区为PRC

    可以访问 https://smallxu.com/time.php 第一行为date 第二行为gmdate 服务器时区为PRC

    值得注意的是,在windows环境下,php输出的时间均为2020-02-28 06:18:25

QQ截图20200228142320.png

    即在windows环境下,date与gmdate输出结果一样(由于访问时间不同,图片和文章中提到的时间不同)


    date()会受到php.ini中的时区(间)相关配置的影响,而gmdate()不会受到影响。

    在php.ini中会有一个date.timezone=PRC,这个配置项可以更改date的时区


    关于date与gmdate的选用

    由于在Linux和Windows环境下,date输出的时间不同。为了网站的兼容性考虑,我们应当统一使用gmdate(即使有少部分人使用Linux)并且规定时区

    例如:

echo gmdate('Y-m-d H:i:s', time() + 3600 * 8);

    这里规定的时区是+8,即PRC(北京时间),我们也可以通过变量来更换为用户所在的时区

Last modification:March 1st, 2020 at 10:51 pm
如果觉得我的文章对你有用,请随意赞赏