gmstrftime

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

gmstrftimeFormatiert eine Datums-/Zeitangabe in GMT/UTC-Format entsprechend den Locale-Einstellungen

Warnung

Diese Funktion wurde in PHP 8.1.0 als DEPRECATED (veraltet) markiert. Es wird dringend davon abgeraten, sich auf diese Funktion zu verlassen.

Alternativ können die folgenden Funktionen verwendet werden:

Beschreibung

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

Bewirkt das gleiche wie strftime(), mit dem Unterschied, dass die Zeit nach Greenwich Mean Time (GMT) zurückgegeben wird. Wenn das Skript beispielsweise unter Eastern Standard Time (GMT -0500) läuft, gibt die erste Zeile unten "Dec 31 1998 20:00:00" aus, während die zweite "Jan 01 1999 01:00:00" ausgibt.

Warnung

Diese Funktion hängt von den Locale-Informationen des Betriebssystems ab und diese sind möglicherweise nicht kompatibel oder gar nicht verfügbar. Stattdessen sollte die Methode IntlDateFormatter::format() verwendet werden.

Parameter-Liste

format

Siehe die Beschreibung bei strftime().

timestamp

Der optionale Parameter timestamp ist ein Unix-Zeitstempel vom Typ int. Falls timestamp nicht übergeben wird oder null ist, wird die aktuelle lokale Zeit als Standardwert verwendet. Er entspricht dann also dem Ergebnis der Funktion time().

Rückgabewerte

Gibt eine entsprechend der übergebenen Formatzeichenkette formatierte Zeichenkette zurück. Die verwendete Zeitangabe wird durch den übergebenen timestamp oder die aktuelle lokale Zeit festgelegt, wenn kein Timestamp angegeben wurde. Monats- und Wochentagsnamen sowie andere sprachabhängige Zeichenketten beziehen sich auf die via setlocale() festgelegte aktuelle Locale-Angabe. Gibt bei einem Fehler false zurück.

Changelog

Version Beschreibung
8.0.0 timestamp ist jetzt nullbar.

Beispiele

Beispiel #1 gmstrftime()-Beispiel

<?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";
?>

Siehe auch

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