gmstrftime

(PHP 4, PHP 5, PHP 7, PHP 8)

gmstrftime根据区域设置格式化 GMT/UTC 时间/日期

警告

该函数自 PHP 8.1 起弃用。强烈建议不要依赖此函数。

此函数可以使用如下替代:

说明

gmstrftime(string $format, ?int $timestamp = null): string|false

行为和 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(2000123198)) . "\n";
echo 
gmstrftime("%b %d %Y %H:%M:%S"mktime(2000123198)) . "\n";
?>

参见

add a note add a note

User Contributed Notes 4 notes

up
1
yellow dot snow at huskies dot com
17 years ago
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()));
?>
up
1
pvdster at hotmail dot com
17 years ago
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 :)
up
-2
neo at gothic-chat d0t de
18 years ago
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().
up
-3
peter dot albertsson at spray dot se
17 years ago
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 Top