In vielen Anwendungsszenarien ist das Verständnis der Sonnenuntergangszeiten in verschiedenen Städten eine übliche Voraussetzung. PHP liefert die Funktion date_sunset () , mit der die Sonnenuntergangszeit an einem bestimmten Ort berechnet werden kann. In Kombination mit der DateTimezone -Klasse können wir in mehreren Städten leicht Sonnenuntergangszeitvergleiche erzielen. In diesem Artikel wird Beispielcode verwendet, um die Verwendung von Datum_Sunset () vorzustellen, um diese Funktion mit DateTimeZone zu implementieren.
Die Funktion date_sunset () ist eine sehr bequeme Datum und Uhrzeit, die in PHP eingebaut ist, um die Sonnenuntergangszeit eines bestimmten Ortes zu erhalten. Die grundlegende Syntax ist wie folgt:
date_sunset(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = 0, float $longitude = 0, float $zenith = 90.83, float $gmt_offset = 0)
$ timestamp : Der angegebene Zeitstempel.
$ format : Gibt das Format zurück, das Sunfuncs_ret_string , sunfuncs_ret_timestamp , sunfuncs_ret_double usw. sein kann.
$ Latitude und $ Longitude : Gibt den Breitengrad und Längengrad des Ortes an.
$ zenith : Die astronomische Position der Sonne, die sich auf 90,83 (d. H. Der astronomische Sonnenuntergangspunkt) befindet.
$ GMT_OFFSET : Der Offset der Zeitzone.
Um präzisere Sonnenuntergangszeiten in der Region zu erhalten, können wir die DateTimezone -Klasse von PHP verwenden, mit der wir verschiedene Zeitzonen angeben können. Durch die Verwendung der Zeitzone mit der Funktion date_sunset () können wir die genaue Sonnenuntergangszeit berechnen.
Das folgende Beispiel für PHP -Code zeigt, wie Sie Datum_Sunset () mit der DateTimezone -Klasse verwenden, um die Sonnenuntergangszeiten in verschiedenen Städten zu vergleichen. In dem Beispiel haben wir drei Städte ausgewählt: New York, London und Peking zum Vergleich.
<?php
// Definieren Sie den Breitengrad und Längengrad einer Stadt und der Zeitzone
$locations = [
'New York' => [
'latitude' => 40.7128,
'longitude' => -74.0060,
'timezone' => 'America/New_York'
],
'London' => [
'latitude' => 51.5074,
'longitude' => -0.1278,
'timezone' => 'Europe/London'
],
'Beijing' => [
'latitude' => 39.9042,
'longitude' => 116.4074,
'timezone' => 'Asia/Shanghai'
]
];
// Aktueller Zeitstempel
$timestamp = time();
// In jeder Stadt die Sonnenuntergangszeiten exportieren
foreach ($locations as $city => $info) {
// Holen Sie sich das Zeitzonenobjekt
$timezone = new DateTimeZone($info['timezone']);
// Berechnen Sie die Sonnenuntergangszeit der Stadt
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $info['latitude'], $info['longitude']);
// erstellen DateTime Objekt und Zeitzone festlegen
$sunset_time = new DateTime("@$sunset");
$sunset_time->setTimezone($timezone);
// Formatausgang Sonnenuntergangszeit
echo "The sunset time in $city is: " . $sunset_time->format('Y-m-d H:i:s') . " (" . $info['timezone'] . ")\n";
}
?>
Wir definieren drei Städte, ihre Breite, Längengrad- und Zeitzonen. Verwenden Sie die DateTimezone -Klasse, um das Zeitzonenobjekt jeder Stadt zu erhalten, um sicherzustellen, dass die berechnete Sonnenuntergangszeit auf der lokalen Zeit basiert.
Verwenden Sie die Funktion date_sunset (), um die Sonnenuntergangszeit jeder Stadt zu berechnen. Diese Funktion gibt das Ergebnis im Unix -Zeitstempelformat zurück.
Wir legen die richtige Zeitzone fest, indem wir ein DateTime -Objekt erstellen und die Methode SetTimeZone () verwenden und dann die Ausgabe auf das Datum-Zeit-Format von YMD h: i: s formatieren.
Unter der Annahme, dass die aktuelle Zeit am 26. April 2025 12:00:00 UTC ist, gibt das Programm etwas ähnlich wie folgt aus:
The sunset time in New York is: 2025-04-26 19:50:00 (America/New_York)
The sunset time in London is: 2025-04-26 20:10:00 (Europe/London)
The sunset time in Beijing is: 2025-04-26 19:30:00 (Asia/Shanghai)
Auf diese Weise können wir die Sonnenuntergangszeiten in verschiedenen Städten leicht vergleichen, und das Ausgangsformat ist flexibel und genau.