Aktueller Standort: Startseite> Neueste Artikel> Wie bekomme ich mit AJAX + PHP die Sonnenuntergangszeit Ihres Standorts in Echtzeit?

Wie bekomme ich mit AJAX + PHP die Sonnenuntergangszeit Ihres Standorts in Echtzeit?

M66 2025-06-12

In der modernen Webentwicklung ermöglicht die AJAX -Technologie Webseiten, mit Servern ohne Aktualisierung zu interagieren, wodurch die Benutzererfahrung verbessert wird. Heute kombinieren wir AJAX und PHP, um eine Funktion zu erreichen: Erhalten Sie die Sonnenuntergangszeit des Standorts in Echtzeit über die Standortinformationen des Benutzers (Breite und Länge).

Schritt 1: Informieren Sie sich der Benutzerstandortinformationen

Zunächst müssen wir die geografischen Standortinformationen des Benutzers erhalten. HTML5 bietet eine Navigator.Geolocation -Schnittstelle, mit der die Breite und Länge des aktuellen Benutzers erhalten werden kann. Diese Schnittstelle erhält die Benutzerortinformationen über eine Browseranforderung. Der Code ist wie folgt:

 <!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Holen Sie sich Sonnenuntergangszeit in Echtzeit</title>
    <script>
        function getLocation() {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(showPosition);
            } else {
                alert("Dieser Browser unterstützt die Geolokalisierung nicht");
            }
        }

        function showPosition(position) {
            var latitude = position.coords.latitude;
            var longitude = position.coords.longitude;

            // Anruf PHP Schnittstelle, um Sonnenuntergangszeit zu erhalten
            fetchSunsetTime(latitude, longitude);
        }

        function fetchSunsetTime(latitude, longitude) {
            var xhr = new XMLHttpRequest();
            xhr.open("GET", "https://m66.net/sunset-time.php?lat=" + latitude + "&lon=" + longitude, true);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var response = JSON.parse(xhr.responseText);
                    document.getElementById("sunset-time").innerHTML = "Sonnenuntergangszeit: " + response.sunset;
                }
            };
            xhr.send();
        }
    </script>
</head>
<body>
    <h1>Holen Sie sich Sonnenuntergangszeit in Echtzeit</h1>
    <button onclick="getLocation()">获取当前位置的Sonnenuntergangszeit</button>
    <p id="sunset-time">Sonnenuntergangszeit将显示在这里。</p>
</body>
</html>

Wenn der Benutzer im obigen Code auf die Schaltfläche "Sonnenuntergangszeit des aktuellen Standorts abrufen" klickt, fordert der Browser auf, den geografischen Standort des Benutzers zu erhalten. Nachdem wir den Breitengrad und die Länge erhalten haben, rufen wir die PHP -Serverschnittstelle über die AJAX -Anforderung auf, um die Sonnenuntergangszeit des Standorts zu erhalten.

Schritt 2: PHP -Backend -Schnittstelle

Um die Sonnenuntergangszeit basierend auf dem Standort des Benutzers zu berechnen, müssen wir die Sonnenuntergangsinformationen über eine externe API erhalten. Hier verwenden wir eine öffentliche API, in der wir die Sonnenuntergangszeit des Ortes durch Breiten- und Längengrad abfragen können. Hier ist unser Code in PHP, der Ajax -Anfragen abwickelt und die Sonnenuntergangszeit erhält.

 <?php
// sunset-time.php

// Holen Sie sich den vom Benutzer gelieferten Breitengrad und Längengrad
$latitude = isset($_GET['lat']) ? floatval($_GET['lat']) : 0;
$longitude = isset($_GET['lon']) ? floatval($_GET['lon']) : 0;

// Überprüfen Sie, ob Breitengrad und Länge gültig sind
if ($latitude == 0 || $longitude == 0) {
    echo json_encode(['error' => 'Ungültige Breite und Länge']);
    exit;
}

// Verwenden Sie den kostenlosen Sonnenstandort API 来获取Sonnenuntergangszeit
$url = "https://api.sunsetapi.net/json?lat={$latitude}&lng={$longitude}";
$response = file_get_contents($url);
if ($response === FALSE) {
    echo json_encode(['error' => '无法获取Sonnenuntergangszeit']);
    exit;
}

// Analyse API Daten zurückgegeben
$data = json_decode($response, true);

// 确保返回了有效的Sonnenuntergangszeit
if (isset($data['results']['sunset'])) {
    $sunset = $data['results']['sunset'];
    echo json_encode(['sunset' => $sunset]);
} else {
    echo json_encode(['error' => '未能获取Sonnenuntergangszeit']);
}
?>

In diesem PHP -Skript erhalten wir die Parameter Breiten- und Längengrad -Parameter ( LAT und LON ) vom Client über eine Get -Anfrage und rufen dann die externe API an, um die Sonnenuntergangszeit dieses Ortes zu erhalten. Nachdem die Daten erhalten wurden, geben wir sie im JSON -Format an den Client zurück.

Schritt 3: Starten Sie den Server und testen Sie

  1. Speichern Sie die oben genannten HTML- und PHP-Codes als Index.html bzw. Sunset-Time.php .

  2. Stellen Sie sicher, dass Ihre PHP -Umgebung ordnungsgemäß ausgeführt wird (z. B. mit XAMPP- oder WAMP -Server usw.).

  3. Platzieren Sie die Datei im Stammverzeichnis Ihres Servers und starten Sie den Server.

  4. Besuchen Sie die Seite Index.html und klicken Sie auf die Schaltfläche. Auf der Seite sollte die Sonnenuntergangszeit Ihres aktuellen Standorts angezeigt werden.

Ergebnisse Anzeige

Wenn der Benutzer auf die Schaltfläche klickt, um die Sonnenuntergangszeit zu erhalten, übergibt die AJAX -Anfrage die Informationen mit Breitengrad und Länge an den Backend -PHP. Nachdem das Backend die Sonnenuntergangszeit durch die externe API erhalten hat, wird sie an den Kunden zurückgegeben. Der Client aktualisiert den Seiteninhalt über JavaScript und zeigt schließlich die Sonnenuntergangszeit an.