php中date()与gmdate()的区别

逆风 技术分享评论166字数 731阅读模式

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


    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

php中date()与gmdate()的区别

    即在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(北京时间),我们也可以通过变量来更换为用户所在的时区

转载请保留原文链接
逆风
  • 本文由 发表于 2020年2月28日 14:01:37
  • 转载请务必保留本文链接:https://blog.smallxu.com/post/32/
评论  0  访客  0
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: