Holen Sie sich die UTC-Zeit in PHP
-
Verwenden Sie
gmdate()
, um die UTC-Zeit zu erhalten -
Verwenden Sie
strtotime()
, um die UTC-Zeit zu erhalten -
Verwenden Sie
date()
, um die UTC-Zeit zu erhalten -
Verwenden Sie
date_default_timezone_set()
, um die UTC-Zeit zu erhalten -
Verwenden Sie das
DateTime
-Objekt, um die UTC-Zeit zu erhalten
In diesem Artikel erfahren Sie, wie Sie mit fünf Methoden UTC in PHP erhalten. Diese Methoden verwenden date_default_timezone_set()
, gmdate()
, strtotime()
, date()
und das DateTime
-Objekt.
Verwenden Sie gmdate()
, um die UTC-Zeit zu erhalten
Die Funktion gmdate()
formatiert ein Datum und eine Uhrzeit in UTC. Sobald Sie gmdate()
mit Ihrem Datumszeitformat versehen, z. Y-m-d H:i:s
, es wird in UTC angezeigt.
Wir haben die aktuelle Zeitzone im folgenden Code auf Detroit, Michigan gesetzt. Dies zeigt die Zeit in Detroit und wie es in UTC ist.
Beispielcode:
<?php
// Use the time in Detroit, Michigan, as the default
// time.
date_default_timezone_set("America/Detroit");
// We get the current time in Detroit, Michigan.
$time_in_Detroit = date('Y-m-d H:i:s', time());
// We get the UTC time using the gmdate() function
$utc_time = gmdate("Y-m-d H:i:s");
// For comparison, we show the time in Detroit and
// what it'll be in UTC.
echo "The current time in Detroit is: " . $time_in_Detroit . PHP_EOL;
echo "The UTC is: " . $utc_time;
?>
Ausgabe (Sie haben unterschiedliche Ergebnisse):
The current time in Detroit is: 2022-07-27 17:32:36
The UTC is: 2022-07-27 21:32:36
Verwenden Sie strtotime()
, um die UTC-Zeit zu erhalten
Die Methode strtotime()
parst eine textuelle Datumszeit in einen Unix-Zeitstempel. Danach können Sie mit dem Zeitstempel machen, was Sie wollen.
Im folgenden Code erhalten wir mit gmdate()
einen Zeitstempel von strtotime()
. Dann übergeben wir den Zeitstempel als zweiten Parameter der Funktion date()
.
Auf diese Weise können Sie Ihr Datumsformat schreiben und das Ergebnis in UTC erhalten. Zum Vergleich haben wir die Zeitzone des Skripts auf Guatemala eingestellt.
Beispielcode:
<?php
// Use the time in Guatemala as the default
// time.
date_default_timezone_set("America/Guatemala");
// We get the current time in Guatemala
$time_in_Guatemala = date('Y-m-d H:i:s', time());
// We get the UTC UNIX timestamp
$utc_timestamp = strtotime(gmdate("M d Y H:i:s"));
// We convert the UNIX timestamp to UTC
$utc_time = date('Y-m-d H:i:s', $utc_timestamp);
// For comparison, we show the time in Guatemala
// and what it'll be in UTC.
echo "The time in Guatemala is: " . $time_in_Guatemala . PHP_EOL;
echo "The UTC is: " . $utc_time;
?>
Ausgabe (Sie haben unterschiedliche Ergebnisse):
The time in Guatemala is: 2022-07-27 15:48:01
The UTC is: 2022-07-27 21:48:01
Verwenden Sie date()
, um die UTC-Zeit zu erhalten
Wir verwenden die Funktion date()
, um ein Datum zu formatieren, aber mit etwas Mathematik gibt date()
die UTC zurück. Die Mathematik beinhaltet das Subtrahieren des Zeitzonen-Offsets von der Epochenzeit, und dann übergeben Sie das Ergebnis als zweiten Parameter der Funktion date()
.
Zum Vergleich haben wir die Zeitzone auf Adelaide, Australien, geändert. Wenn Sie den folgenden Code ausführen, sehen Sie die UTC und wie es in Adelaide ist.
Beispielcode:
<?php
// Use the time in Adelaide, Australia, as the default
// time.
date_default_timezone_set("Australia/Adelaide");
// We get the current time in Adelaide
$time_in_Adelaide = date('Y-m-d H:i:s', time());
// We get the UTC time using the date() function.
$utc_time = date("Y-m-d H:i:s", time() - date("Z"));
// For comparison, we show the time in Adelaide
// and what it'll be in UTC.
echo "The time in Adelaide is: " . $time_in_Adelaide . PHP_EOL;
echo "The UTC is: " . $utc_time;
?>
Ausgabe (Sie haben unterschiedliche Ergebnisse):
The time in Adelaide is: 2022-07-28 07:56:31
The UTC is: 2022-07-27 22:26:31
Verwenden Sie date_default_timezone_set()
, um die UTC-Zeit zu erhalten
Die Funktion date_default_timezone_set()
dient zum Ändern der Zeitzone. Wir können es auch verwenden, um die UTC zurückzugeben, indem wir seinen Parameter auf UTC
ändern.
Daher ist es immer in UTC, unabhängig von der Zeit im PHP-Skript.
<?php
// Set the default time zone to UTC and all
// date and time of the current PHP script will
// be in UTC.
date_default_timezone_set("UTC");
// As usual, get the date, but this time, it'll
// return the time in UTC. That's because this script
// has its time zone set to UTC.
$utc_time = date('Y-m-d H:i:s', time());
echo "The UTC is: " . $utc_time;
?>
Ausgabe (Sie haben unterschiedliche Ergebnisse):
The UTC is: 2022-07-27 22:36:02
Verwenden Sie das DateTime
-Objekt, um die UTC-Zeit zu erhalten
Eine Kombination aus dem DateTime
-Objekt und dem DateTimeZone
-Objekt kann die UTC zurückgeben. Um die UTC zurückzugeben, setzen Sie den ersten und zweiten Parameter von DateTime
auf now
und new \DateTimeZone("UTC")
, und dann können Sie das Ergebnis im RFC 850-Format anzeigen.
Beispielcode:
<?php
// Get the UTC using the DateTime object.
// Its first parameter should be the
// string "now". And its second parameter should
// be a new DateTimeZone object and its parameter
// should be the string "UTC".
$utc_time = new \DateTime("now", new \DateTimeZone("UTC"));
// Format the date to show it's a UTC date
// A sample output is: Wednesday, 27-Jul-22 15:02:41 UTC
echo $utc_time->format(\DateTime::RFC850);
?>
Ausgabe (Sie haben unterschiedliche Ergebnisse):
Wednesday, 27-Jul-22 23:00:42 UTC
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn