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 분。
DATE_SUNSET ()는 위도 및 경도 매개 변수를 제공해야하며 다른 지역의 값은 계산 결과에 영향을 미칩니다.
기능의 날짜 ( "z") / 3600은 정확한 결과를 보장하기 위해 현재 서버의 시간대 오프셋을 동적으로 얻는 데 사용됩니다.
date_diff ()는 dateinterval 객체를 반환합니다. 여기서 h 와 i 속성은 시간 및 분 부분을 나타냅니다.