Aktueller Standort: Startseite> Neueste Artikel> DATE_SUNSET () und DateTimezone erreichen Vergleich der Sonnenuntergangszeiten an mehreren Stellen

DATE_SUNSET () und DateTimezone erreichen Vergleich der Sonnenuntergangszeiten an mehreren Stellen

M66 2025-05-31

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.

1. Verwenden Sie die Funktion date_sunset ()

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.

2. Verwenden Sie mit der DateTimezone -Klasse

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.

3. Code Beispiel: Vergleich der Sonnenuntergangszeiten in mehreren Städten

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

4. Code Beschreibung

  • 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.

5. Ergebnisse Ausgabe

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.