gmstrftime

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

gmstrftimeФорматирует дату/время по Гринвичу с учётом текущей локали

Внимание

Функция объявлена УСТАРЕВШЕЙ в PHP 8.1.0. Полагаться на эту функцию крайне не рекомендуется.

Есть следующие альтернативы:

Описание

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

Эта функция идентична функции strftime() за исключением того, что возвращает время по Гринвичу (GMT). Например, при запуске на системе, где установлено Eastern Standard Time (GMT-0500), первая строка из примера ниже выведет "Dec 31 1998 20:00:00", тогда как вторая - "Jan 01 1999 01:00:00".

Внимание

Функция зависит от информации о локали операционной системы, которая может быть несовместима друг с другом или вообще отсутствовать. Вместо этой функции используйте метод IntlDateFormatter::format().

Список параметров

format

Смотрите описание функции strftime().

timestamp

Необязательный параметр timestamp — это целочисленная (int) метка времени, по умолчанию равная текущему местному времени, если параметр timestamp не указан или равен null. Говоря по другому, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную согласно указанному формату и с использованием временной метки из параметра timestamp или текущего локального времени, если временная метка не была указана. Названия месяцев, дней недели и других языкозависимых строк будут показаны с учётом настроек текущей локали, установленных с помощью функции setlocale(). В случае возникновения ошибки возвращает false.

Список изменений

Версия Описание
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";
?>

Смотрите также

  • IntlDateFormatter::format() - Форматирует значение даты/времени в виде строки
  • DateTimeInterface::format() - Возвращает дату, отформатированную согласно переданному формату
  • strftime() - Форматирует текущую дату/время с учётом текущих настроек локали

add a note add a note

User Contributed Notes 4 notes

up
0
yellow dot snow at huskies dot com
20 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
19 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
-1
peter dot albertsson at spray dot se
19 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';
up
-2
neo at gothic-chat d0t de
20 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().
To Top