Aktueller Standort: Startseite> Neueste Artikel> So erstellen Sie Datum_Sunset () Unterstützung internationaler Anzeigezeit unterstützen

So erstellen Sie Datum_Sunset () Unterstützung internationaler Anzeigezeit unterstützen

M66 2025-06-04

In PHP kann die Funktion date_sunset () die Sonnenuntergangszeit basierend auf Breitengrad und Datum berechnen. Es gibt einen Unix -Zeitstempel oder eine formatierte Zeitzeichenfolge zurück. Diese Funktion selbst unterstützt jedoch nicht direkt mehrsprachige Ausgaben oder verschiedene internationalisierte Zeitformate (i18N). Wie erstellt ich also date_sunset () Support Mehrsprachige und lokalisierte Anzeige? In diesem Artikel werden Sie Schritt für Schritt implementieren.

1. Überprüfung der Grundnutzung

Lassen Sie uns zunächst die grundlegende Verwendung von DATE_SUNSET () verstehen:

 <?php
$timestamp = strtotime('2025-04-26');
$latitude = 37.7749;  // Zum Beispiel:San Francisco
$longitude = -122.4194;

$sunset = date_sunset(
    $timestamp,
    SUNFUNCS_RET_TIMESTAMP,
    $latitude,
    $longitude,
    90,
    0
);

echo date('H:i:s', $sunset);
?>

Der obige Code gibt die Sonnenuntergangszeit aus, das Zeitformat ist jedoch festgelegt und muss manuell formatiert werden. Und das Gebietsschema wird nicht berücksichtigt.

2. Reform zur Unterstützung mehrsprachiger und internationaler Zeitformate

Um mehrsprachig und Internationalisierung zu erreichen, können wir die intDDateFormatter -Klasse von PHP kombinieren, ein leistungsstarkes Tool, das durch die INTL -Erweiterung bereitgestellt wird.

Stellen Sie zunächst sicher, dass Ihr Server die INTL -Erweiterung installiert hat. Wenn nicht, können Sie sich hier auf die Installation beziehen: https://www.m66.net/php-intl-install-guide

Hier ist ein komplett verbessertes Codebeispiel:

 <?php
$timestamp = strtotime('2025-04-26');
$latitude = 37.7749;   // Breite
$longitude = -122.4194; // Länge

// Holen Sie sich den Sonnenuntergangszeitstempel
$sunset = date_sunset(
    $timestamp,
    SUNFUNCS_RET_TIMESTAMP,
    $latitude,
    $longitude,
    90,
    0
);

// Setzen Sie Sprache und Region,Zum Beispiel法语法国
$locale = 'fr_FR'; // Kann auf geändert werden auf 'zh_CN'、'en_US'、'de_DE' Warten

// Zeitzone setzen
$timezone = 'Europe/Paris'; // Stellen Sie nach Bedarf die richtige Zeitzone ein

// Erstellen Sie ein Formatierer
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    $timezone,
    IntlDateFormatter::GREGORIAN
);

// Format Sonnenuntergangszeit
$localizedSunset = $formatter->format($sunset);

echo "Sonnenuntergangszeit(Lokalisierung): " . $localizedSunset;
?>

Erklären wir:

  • Gebietsschema kontrolliert die Ausgangssprache wie Chinesisch, Französisch, Deutsch usw.

  • TimeZone steuert die Ausgangszeitzone, um die richtige Zeit zu gewährleisten.

  • IntDateFormatter kann automatisch Daten nach den Sprachgewohnheiten formatieren, z. B. "26. April 2025" in "26 Avril 2025" (französisches Format).

3. Beispiel für dynamisches Sprachschalter

Wenn Ihre Website Benutzern es ermöglicht, Sprachen auszuwählen, z. B. Sprachcodes aus URL -Parametern, können Sie dies tun:

 <?php
$locale = isset($_GET['lang']) ? $_GET['lang'] : 'en_US';

$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'UTC',
    IntlDateFormatter::GREGORIAN
);

$sunset = date_sunset(
    strtotime('2025-04-26'),
    SUNFUNCS_RET_TIMESTAMP,
    37.7749,
    -122.4194,
    90,
    0
);

echo $formatter->format($sunset);
?>

Wenn Sie besuchen: https://www.m66.net/sunset.php?lang=de_de , sehen Sie die Sonnenuntergangszeit im deutschen Format.

4. Tipps: Anpassungsformat

Wenn Sie das Ausgangsformat vollständig anpassen möchten, z. B. nur Stunden und Minuten anzeigen, können Sie den benutzerdefinierten Modus weiter angeben:

 $formatter = new IntlDateFormatter(
    'zh_CN',
    IntlDateFormatter::NONE,
    IntlDateFormatter::NONE,
    'Asia/Shanghai',
    IntlDateFormatter::GREGORIAN,
    'HH:mm'
);

Diese Einstellung gibt ein Zeitformat wie 18:45 aus, das sehr für Mobilgeräte geeignet ist oder wenn Sie eine einfache Schnittstelle benötigen.

Zusammenfassen

  • DATE_SUNSET () selbst unterstützt nicht mehrsprachig und Internationalisierung, kann sondern in Verbindung mit intDateFormatter verwendet werden.

  • Denken Sie daran, Gebietsschema und Zeitzone richtig zu setzen.

  • Wenn Benutzer die Sprachen dynamisch wechseln können, kann die Benutzererfahrung erheblich verbessern.

Solange Sie dies verstehen, können ähnliche Datumszeitfunktionen (z. B. DATE_SUNRISE () ) ebenfalls auf die gleiche Weise internationalisiert werden.