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.
<?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。";
}
?>
Es gibt noch Sonnenuntergang 2 Stunde 34 Minute。
Oder wenn es bereits Sonnenuntergang ist:
Der Sonnenuntergang ist vergangen 1 Stunde 12 Minute。
DATE_SUNSET () muss Breiten- und Längengradparameter bereitstellen, und die Werte in verschiedenen Regionen beeinflussen die Berechnungsergebnisse.
Datum ("z") / 3600 in der Funktion wird verwendet, um den Zeitzonenversatz des aktuellen Servers dynamisch zu erhalten, um die genauen Ergebnisse zu gewährleisten.
DATE_DIFF () gibt ein DateInterval -Objekt zurück, bei dem die H- und I -Eigenschaften die Stunde und die winzigen Teile darstellen.