HTTP 1.1 (RFC 2068) requires an RFC 1123 date with a four digit year, so the correct format to use for a Last-modified header would look something like this:
<?php
header("Last-modified: " .
gmstrftime("%a, %d %b %Y %T %Z",getlastmod()));
?>
(PHP 4, PHP 5, PHP 7, PHP 8)
gmstrftime — 根据区域设置格式化 GMT/UTC 时间/日期
行为和 strftime() 相同,只是返回的时间是格林威治标准时(GMT)。例如,在东部标准时(EST,GMT -0500)运行时,下面第一行显示“Dec 31 1998 20:00:00”,而第二行显示“Jan 01 1999 01:00:00”。
此函数依赖于操作系统区域设置信息,这些信息可能彼此不一致,或者根本不能用。而是使用 IntlDateFormatter::format() 方法。
format
See description in strftime().
timestamp
可选的 timestamp
参数是一个 int 的 Unix
时间戳,如未指定或是 null
,参数值默认为当前本地时间。也就是说,其值默认为
time() 的返回值。
Returns a string formatted according to the given format string
using the given timestamp
or the current
local time if no timestamp is given. Month and weekday names and
other language dependent strings respect the current locale set
with setlocale().
On failure, false
is returned.
版本 | 说明 |
---|---|
8.0.0 |
现在 timestamp 允许为 null。
|
示例 #1 gmstrftime() 例子
<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>
HTTP 1.1 (RFC 2068) requires an RFC 1123 date with a four digit year, so the correct format to use for a Last-modified header would look something like this:
<?php
header("Last-modified: " .
gmstrftime("%a, %d %b %Y %T %Z",getlastmod()));
?>
If you want the dutch time on your pages and you are hosted on a server in the USA you can easily change it this way:
<?php
setlocale(LC_TIME, 'nl_NL');
$tgl = gmstrftime("%d %B %Y - %H:%M uur",time()+3600);
?>
Then use $tgl to display the right time.
Note the +3600 is a day light savings time correction.
The result: 22 maart 2005 - 16:39 uur
First I used the normal date function and this was the previous result: March 22, 2005 - 04:28 AM
I needed it for a dutch guestbook.
I'm new to PHP and it took me a while to find it out and maybe it's of no use for experienced PHP programmers but I thought people can always ignore my post :)
gmstrftime() should not be used to generate a RFC 850 date for use in HTTP headers, since its output is affected by setlocale().
Use gmdate instead:
gmdate('D, d M Y H:i:s') . ' GMT';
To get a RFC 850 date (used in HTTP) of the current time:
gmstrftime ("%A %d-%b-%y %T %Z", time ());
This will get for example:
Friday 25-Jun-04 03:30:23 GMT
Please note that times in HTTP-headers _must_ be GMT, so use gmstrftime() instead of strftime().