Aktueller Standort: Startseite> Neueste Artikel> DATE_SUNSET () und DATE_DIFF () Berechnen Sie die Differenz zwischen Sonnenuntergang und aktuelle Zeit

DATE_SUNSET () und DATE_DIFF () Berechnen Sie die Differenz zwischen Sonnenuntergang und aktuelle Zeit

M66 2025-06-05

In PHP ist DATE_SUNSET () eine Funktion, mit der die Sonnenuntergangszeit für einen bestimmten Datum und geografischen Ort erhalten wird, während DATE_DIFF () das Zeitintervall zwischen zwei Daten und Zeiten berechnen kann. Wenn wir diese beiden Funktionen kombinieren, können wir leicht zeichnen: "Wie lange wird es heute vor Sonnenuntergang dauern".

Im Folgenden verwenden wir ein einfaches Beispiel, um zu demonstrieren, wie diese Funktion implementiert wird.

Beispielcode:

 <?php
// Legen Sie die Zeitzone fest
date_default_timezone_set('Asia/Shanghai');

// Holen Sie sich die aktuelle Zeit
$currentTime = new DateTime();

// Datum und geografischer Ort festlegen(Nehmen Sie Peking Zeit und Peking als Beispiele als Beispiele)
$timestamp = time();
$latitude = 39.9042;   // Peking Breitengrad
$longitude = 116.4074; // Peking Länge

// Holen Sie sich heute die Sonnenuntergangszeit(Die Rückkehr ist ein Zeitstempel)
$sunsetTimestamp = date_sunset(
    $timestamp,
    SUNFUNCS_RET_TIMESTAMP,
    $latitude,
    $longitude,
    90,  // Höhenwinkel,Im Allgemeinen eingestellt wie90Zeigt den Standard -Sonnenuntergang an
    date("Z") / 3600  // Die Anzahl der Stunden in der aktuellen Zeitzone
);

// Sonnenuntergangszeit umwandeln, um DateTime Objekt
$sunsetTime = new DateTime();
$sunsetTime->setTimestamp($sunsetTimestamp);

// Berechnen Sie die Lücke zwischen aktueller Zeit und Sonnenuntergangszeit
$interval = date_diff($currentTime, $sunsetTime);

// Stellen Sie fest, ob noch Zeit ist oder ob es Sonnenuntergang hat
if ($sunsetTime > $currentTime) {
    echo "Es gibt noch Sonnenuntergang " . $interval->h . " Stunde " . $interval->i . " Minute。";
} else {
    echo "Der Sonnenuntergang ist vergangen " . $interval->h . " Stunde " . $interval->i . " Minute。";
}
?>

Ausgangsbeispiel:

 Es gibt noch Sonnenuntergang 2 Stunde 34 Minute。

Oder wenn es bereits Sonnenuntergang ist:

 Der Sonnenuntergang ist vergangen 1 Stunde 12 Minute。

Anmerkungen:

  1. DATE_SUNSET () muss Breiten- und Längengradparameter bereitstellen, und die Werte in verschiedenen Regionen beeinflussen die Berechnungsergebnisse.

  2. Datum ("z") / 3600 in der Funktion wird verwendet, um den Zeitzonenversatz des aktuellen Servers dynamisch zu erhalten, um die genauen Ergebnisse zu gewährleisten.

  3. DATE_DIFF () gibt ein DateInterval -Objekt zurück, bei dem die H- und I -Eigenschaften die Stunde und die winzigen Teile darstellen.