현재 위치: > 최신 기사 목록> PHP의 date_sunset () 함수를 다국어 및 국제 시간 형식 디스플레이를 지원하는 방법은 무엇입니까?

PHP의 date_sunset () 함수를 다국어 및 국제 시간 형식 디스플레이를 지원하는 방법은 무엇입니까?

M66 2025-06-04

PHP에서 date_sunset () 함수는 위도와 경도 및 날짜에 따라 일몰 시간을 계산할 수 있습니다. Unix 타임 스탬프 또는 형식의 시간 문자열을 반환합니다. 그러나이 기능 자체는 다국어 출력 또는 다른 국제화 (I18N) 시간 형식을 직접 지원하지 않습니다. 그렇다면 date_sunset ()를 지원하는 방법 다국어 및 현지화 된 디스플레이를 지원하는 방법은 무엇입니까? 이 기사를 사용하면 단계별로 구현할 수 있습니다.

1. 기본 사용법 검토

먼저 date_sunset () 의 기본 사용법을 이해해 봅시다.

 <?php
$timestamp = strtotime('2025-04-26');
$latitude = 37.7749;  // 예를 들어:샌프란시스코
$longitude = -122.4194;

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

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

위의 코드는 일몰 시간을 출력하지만 시간 형식은 고정되어 있으며 수동으로 포맷해야합니다. 그리고 로케일은 고려되지 않습니다.

2. 다국어 및 국제 시간 형식을 지원하기위한 개혁

다국어 및 국제화를 달성하기 위해 PHP의 intldateformatter 클래스를 결합 할 수 있습니다.이 클래스는 Intl 확장에서 제공되는 강력한 도구입니다.

먼저 서버에 Intl 확장자가 설치되어 있는지 확인하십시오. 그렇지 않은 경우 여기에서 설치를 참조하십시오 : https://www.m66.net/php-intl-install-guide

다음은 완전히 개선 된 코드 예입니다.

 <?php
$timestamp = strtotime('2025-04-26');
$latitude = 37.7749;   // 위도
$longitude = -122.4194; // 경도

// 일몰 타임 스탬프를 얻으십시오
$sunset = date_sunset(
    $timestamp,
    SUNFUNCS_RET_TIMESTAMP,
    $latitude,
    $longitude,
    90,
    0
);

// 언어와 지역을 설정하십시오,예를 들어法语法国
$locale = 'fr_FR'; // 변경할 수 있습니다 'zh_CN'、'en_US'、'de_DE' 기다리다

// 시간대를 설정하십시오
$timezone = 'Europe/Paris'; // 필요에 따라 올바른 시간대를 설정하십시오

// 형성자를 만듭니다
$formatter = new IntlDateFormatter(
    $locale,
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    $timezone,
    IntlDateFormatter::GREGORIAN
);

// 일몰 시간 형식
$localizedSunset = $formatter->format($sunset);

echo "일몰 시간(현지화): " . $localizedSunset;
?>

설명하자 :

  • 로케일은 중국어, 프랑스어, 독일어 등과 같은 출력 언어를 제어합니다.

  • TimeZone은 출력 시간대를 제어하여 올바른 시간을 보장합니다.

  • intldateformatter는 "2025 년 4 월 26 일"을 "26 Avril 2025"(프랑스 형식)로 돌리는 것과 같은 언어 습관에 따라 날짜를 자동으로 포맷 할 수 있습니다.

3. 동적 언어 전환 예제

웹 사이트가 URL 매개 변수에서 언어 코드를 전달하는 것과 같은 언어를 선택할 수 있으면 다음을 수행 할 수 있습니다.

 <?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);
?>

방문하면 https://www.m66.net/sunset.php?lang=de_de를 방문하면 일몰 시간이 독일 형식으로 표시됩니다.

4. 팁 : 맞춤형 형식

시간과 분만 표시하는 등 출력 형식을 완전히 사용자 정의하려면 사용자 정의 모드를 더 지정할 수 있습니다.

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

이 설정은 18:45 와 같은 시간 형식을 출력하며, 이는 모바일에 매우 적합하거나 간단한 인터페이스가 필요한 경우에 매우 적합합니다.

요약

  • date_sunset () 자체는 다국어 및 국제화를 지원하지 않지만 intldateformatter 와 함께 사용할 수 있습니다.

  • 로케일시간대를 올바르게 설정해야합니다.

  • 사용자가 언어를 동적으로 전환 할 수있게하면 사용자 경험을 크게 향상시킬 수 있습니다.

이것을 이해하는 한, 비슷한 날짜 시간 기능 (예 : date_sunrise () )도 같은 방식으로 국제화 될 수 있습니다.