현재 위치: > 최신 기사 목록> date_sunset () 및 date_diff () 일몰과 현재 시간의 차이를 계산합니다.

date_sunset () 및 date_diff () 일몰과 현재 시간의 차이를 계산합니다.

M66 2025-06-05

php에서 date_sunset () 는 특정 날짜 및 지리적 위치에 대한 일몰 시간을 얻는 데 사용되는 함수이며 date_diff ()는 두 날짜와 시간 사이의 시간 간격을 계산할 수 있습니다. 이 두 기능을 결합하여 "오늘 일몰 이전에는 얼마나 오래 걸릴 것인가"를 쉽게 그릴 수 있습니다.

아래에서는 간단한 예제를 사용 하여이 기능을 구현하는 방법을 보여줍니다.

샘플 코드 :

 <?php
// 시간대를 설정하십시오
date_default_timezone_set('Asia/Shanghai');

// 현재 시간을 얻으십시오
$currentTime = new DateTime();

// 날짜와 지리적 위치를 설정하십시오(베이징 시간과 베이징 위치를 예로 들어보십시오)
$timestamp = time();
$latitude = 39.9042;   // 베이징 위도
$longitude = 116.4074; // 베이징 경도

// 오늘 일몰 시간을 얻으십시오(반환은 타임 스탬프입니다)
$sunsetTimestamp = date_sunset(
    $timestamp,
    SUNFUNCS_RET_TIMESTAMP,
    $latitude,
    $longitude,
    90,  // 고도 각도,일반적으로로 설정합니다90표준 일몰을 나타냅니다
    date("Z") / 3600  // 현재 시간대의 시간 수
);

// 일몰 시간을 DateTime 물체
$sunsetTime = new DateTime();
$sunsetTime->setTimestamp($sunsetTimestamp);

// 현재 시간과 일몰 시간 사이의 간격을 계산하십시오
$interval = date_diff($currentTime, $sunsetTime);

// 아직 시간이 있는지 또는 일몰이 있는지 여부를 결정
if ($sunsetTime > $currentTime) {
    echo "여전히 일몰이 있습니다 " . $interval->h . " 시간 " . $interval->i . " 분。";
} else {
    echo "일몰이 지났습니다 " . $interval->h . " 시간 " . $interval->i . " 분。";
}
?>

출력 예 :

 여전히 일몰이 있습니다 2 시간 34 분。

또는 이미 일몰 인 경우 :

 일몰이 지났습니다 1 시간 12 분。

참고 :

  1. DATE_SUNSET ()는 위도 및 경도 매개 변수를 제공해야하며 다른 지역의 값은 계산 결과에 영향을 미칩니다.

  2. 기능의 날짜 ( "z") / 3600은 정확한 결과를 보장하기 위해 현재 서버의 시간대 오프셋을 동적으로 얻는 데 사용됩니다.

  3. date_diff ()는 dateinterval 객체를 반환합니다. 여기서 hi 속성은 시간 및 분 부분을 나타냅니다.