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。
php date / time 常量
php:指示支持该常量的最早的 php 版本。
常量 描述 php
date_atom 原子钟格式 (如: 2005-08-15t16:13:03+0000)
date_cookie http cookies 格式 (如: sun, 14 aug 2005 16:13:03 utc)
date_iso8601 iso-8601 (如: 2005-08-14t16:13:03+0000)
date_rfc822 rfc 822 (如: sun, 14 aug 2005 16:13:03 utc)
date_rfc850 rfc 850 (如: sunday, 14-aug-05 16:13:03 utc)
date_rfc1036 rfc 1036 (如: sunday, 14-aug-05 16:13:03 utc)
date_rfc1123 rfc 1123 (如: sun, 14 aug 2005 16:13:03 utc)
date_rfc2822 rfc 2822 (如: sun, 14 aug 2005 16:13:03 +0000)
date_rss rss (如: sun, 14 aug 2005 16:13:03 utc)
date_w3c world wide web consortium (如: 2005-08-14t16:13:03+0000)
所以,我们应该给一个兼容性的写法,统一使用gmdate,并手工设置当前时区,写法改进如下:
echo gmdate(‘y-m-d h:i:s’, time() + 3600 * 8);
gmdate():返回的是当前 gmt标准时间的“自定义格式”时间,跟php系统设置的时区无关。
例子 1
当在中国(gmt +0800)运行以下程序时,第一行显示“jan 01 2000 00:00:00”,而第二行显示“dec 31 1999 16:00:00”。
代码如下 复制代码
echo date(m d y h:i:s, mktime (0,0,0,1,1,2000));
echo gmdate(m d y h:i:s, mktime (0,0,0,1,1,2000));
?>
输出:
jan 01 2000 00:00:00
dec 31 1999 16:00:00
例子 2
代码如下 复制代码
echo(result with date():
);
echo(date(l) .
);
echo(date(l ds of f y h:i:s a) .
);
echo(oct 3,1975 was on a .date(l, mktime(0,0,0,10,3,1975)).
);
echo(date(date_rfc822) .
);
echo(date(date_atom,mktime(0,0,0,10,3,1975)) .
);
echo(result with gmdate():
);
echo(gmdate(l) .
);
echo(gmdate(l ds of f y h:i:s a) .
);
echo(oct 3,1975 was on a .gmdate(l, mktime(0,0,0,10,3,1975)).
);
echo(gmdate(date_rfc822) .
);
echo(gmdate(date_atom,mktime(0,0,0,10,3,1975)) .
);
?>
输出:
result with date():
tuesday
tuesday 24th of january 2006 02:41:22 pm
oct 3,1975 was on a friday
tue, 24 jan 2006 14:41:22 cet
1975-10-03t00:00:00+0100
result with gmdate():
tuesday
tuesday 24th of january 2006 01:41:22 pm
oct 3,1975 was on a thursday
tue, 24 jan 2006 13:41:22 gmt
1975-10-02t23:00:00+0000
http://www.bkjia.com/phpjc/445298.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/445298.htmltecharticlephp有2个时间格式化函数:date()和gmdate(),在官方的文档中的描述为date 格式化一个本地时间/日期gmdate 格式化一个 gmt/utc 日期/时间,返回...
