현재 위치: > 최신 기사 목록> date_sunset 함수의 시간대 설정을 조정하는 방법은 무엇입니까?

date_sunset 함수의 시간대 설정을 조정하는 방법은 무엇입니까?

gitbox 2025-05-28

php에서 date_sunset () 함수는 주어진 날짜 및 장소의 일몰 시간을 계산하는 데 사용됩니다. 기본적 으로이 함수는 서버의 기본 시간대에 따라 시간을 반환합니다. 서버 시간대 설정이 대상 위치 시간대와 다른 경우, 획득 된 일몰 시간이 정확하지 않을 수 있습니다. 이 기사에서는 올바른 일몰 시간을 얻도록 date_sunset () 함수의 시간대 매개 변수를 조정하는 방법을 자세히 소개합니다.


1. date_sunset 함수의 기본 사용법을 이해하십시오

date_sunset () 함수의 기본 구문은 다음과 같습니다.

 date_sunset(
    int $timestamp,
    int $format = SUNFUNCS_RET_STRING,
    float $latitude = ini_get("date.default_latitude"),
    float $longitude = ini_get("date.default_longitude"),
    float $zenith = ini_get("date.sunset_zenith"),
    float $gmt_offset = 0
): string|int|float|false
  • $ timestamp : dateTime의 UNIX 타임 스탬프

  • $ 형식 : 반환 값 형식, 일반적으로 사용되는 문자열 형식 ( sunfuncs_ret_string ) 또는 타임 스탬프 형식 ( sunfuncs_ret_timestamp )

  • $ latitude , $ 경도 : 지리적 좌표

  • $ Zenith : Sun 's Height Agle, Default

  • $ gmt_offset : 시간대 오프셋 (GMT에 대한 시간 수)


2. 시간대 매개 변수의 핵심 지점을 설정하십시오

date_sunset () 마지막 매개 변수 $ gmt_offset은 시간대를 조정하는 열쇠입니다. 다음과 같은 GMT에 대한 시간 수입니다.

  • 베이징 시간 (UTC+8) 들어가는 8

  • 뉴욕 타임 (UTC-5) 수신 -5

$ gmt_offset을 올바르게 통과하면 기능이 해당 시간대의 정확한 일몰 시간을 반환 할 수 있습니다.


3. 샘플 코드 : 지정된 시간대의 일몰 시간 받기

다음 예제는 date_sunset ()을 사용하여 베이징 시간의 일몰 시간을 얻는 방법을 보여줍니다.

 <?php
// 시간대를 설정하십시오,영향 date() 동일한 기능의 출력,但不영향 date_sunset 계산
date_default_timezone_set('Asia/Shanghai');

// 오늘 타임 스탬프를 얻으십시오
$timestamp = time();

// 지리적 좌표를 설정하십시오(베이징)
$latitude = 39.9042;
$longitude = 116.4074;

// 시간대를 설정하십시오偏移,베이징时间是 +8
$gmt_offset = 8;

// 일몰 시간을 얻으십시오,형식을 문자열로 반환하십시오 "HH:MM"
$sunset_time = date_sunset($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, 90, $gmt_offset);

echo "베이징时间的日落时间是:$sunset_time";
?>

이 코드는 다음과 유사한 출력입니다.

 베이징时间的日落时间是:18:45

4. 주목할만한 것들

  • $ gmt_offset은 $ latitude$ longitude 에 해당하는 시간대와 일치해야합니다.

  • PHP 서버 시간대는 date_sunset 의 시간대 계산에 영향을 미치지 않지만 날짜 () 의 출력 및 기타 시간 함수에 영향을 미칩니다.

  • 일광 절약 시간을 처리하려면 날짜에 따라 $ gmt_offset을 동적으로 조정하거나 더 복잡한 날짜 및 시간 라이브러리 (예 : DateTimezone결합 )를 사용하여보다 정확한 순간을 계산해야합니다.


5. DateTime 및 DateTimezone을 사용하여 시간대 조정 (고급)

date_sunset ()은 일광 절약 시간의 자동 식별을 지원하지 않습니다. 시간대를보다 정확하게 처리 해야하는 경우 먼저 DateTime을 사용하여 시간대와 함께 타임 스탬프를 얻은 다음 date_sunset () 에서 전달할 수 있습니다.

예:

 <?php
// 대상 시간대
$timezone = new DateTimeZone('America/New_York');

// 날짜와 시간을 지정합니다
$date = new DateTime('now', $timezone);

// 타임 스탬프를 얻으십시오
$timestamp = $date->getTimestamp();

// 지리적 좌표(뉴욕)
$latitude = 40.7128;
$longitude = -74.0060;

// 시간대 오프셋을 얻습니다(시간)
$gmt_offset = $timezone->getOffset($date) / 3600;

// 일몰 시간을 얻으십시오
$sunset_time = date_sunset($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, 90, $gmt_offset);

echo "뉴욕时间的日落时间是:$sunset_time";
?>

이렇게하면 대상 시간 영역에 따라 오프셋을 자동으로 조정하여 수동 계산 오류를 피할 수 있습니다.


6. 요약

  • date_sunset ()$ gmt_offset 매개 변수는 반환 된 일몰 시간의 시간대를 결정합니다.

  • 올바른 시간대 오프셋을 수동으로 통과하면 정확한 결과를 보장 할 수 있습니다.

  • DateTimeDateTimezone을 결합하면 복잡한 시간 영역과 일광 절약 시간을 처리하는 데 더 많은 유연성이 있습니다.