当前位置: 首页 > 图文教程 > 网络编程 > PHP > php date与gmdate的获取日期的区别

PHP
PHP 执行系统外部命令 system() exec() passthru()
最新的php 文件上传模型,支持多文件上传
php 静态页面中显示动态内容
数据库查询记录php 多行多列显示
谈PHP生成静态页面分析 模板+缓存+写文件
PHP 各种排序算法实现代码
PHP nl2br函数 将换行字符转成 <br>
php 分页原理详解
Discuz 模板语句分析及知识技巧
php win下Socket方式发邮件类
怎样去阅读一份php源代码
建站常用13种PHP开源CMS比较
php xml留言板 xml存储数据的简单例子
PHP 开源AJAX框架14种
PHP 替换模板变量实现步骤
PHP has encountered an Access Violation at 7C94BD02解决方法
php 正则匹配函数体
php 文件夹删除、php清除缓存程序
php download.php实现代码 跳转到下载文件(response.redirect)
PHP类(Class)入门教程

PHP 中的 php date与gmdate的获取日期的区别


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 254 ::
收藏到网摘: n/a

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
  但是这只是在Linux+Apache下运行PHP所得的结果,如果在Windows下运行,则2个函数返回都是:2007-03-14 04:15:27。
  所以,我们应该给一个兼容性的写法,统一使用gmdate,并手工设置当前时区,写法改进如下:
  echo gmdate('Y-m-d H:i:s', time() + 3600 * 8);
  这样不管在Linux+Apache下还是Windows下都得到了正确的结果,当然这样写还有一个好处,当网站是面向全世界的时候,那么网站用户只要设置所在的时区,程序自动根据用户设置的时区进行时间计算,数据库中信息发布时间只存当前的time()所生成的时间,那么在中国+8时区看到的发布时间是:2007-03-14 12:15:27,那么在欧洲+2时区用户看到这个信息的发布时间是:2007-03-14 06:15:27,这样信息的时间就全部对应正确了。