달력 응용 프로그램 또는 일기 예보 기능을 개발할 때는 종종 매일 일몰 시간을 표시해야합니다. 다행히도 PHP는 매우 편리한 기능을 제공하여 복잡한 API에 의존하지 않고 일몰 시간을 얻는 데 도움이됩니다. 이 기사는 PHP를 사용하여 다음 7 일의 일몰 시간을 얻는 방법을 알려주고 달력에 직접 표시하는 데 적합합니다.
PHP는 날짜 _sunset () 함수를 제공하며 지정된 날짜, 지리적 위치 (위도 및 경도)에 따라 일의 일몰 시간을 계산할 수 있습니다. 기본 통화 방법은 다음과 같습니다.
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 40.7128, -74.0060);
echo "오늘의 일몰 시간입니다:" . $sunset;
매개 변수 설명 :
시간 () : 현재 타임 스탬프.
sunfuncs_ret_string : 시간 형식 (문자열)을 반환합니다.
40.7128 : 위도 (예 : 뉴욕시의 위도).
-74.0060 : 경도.
그러나 우리가 원하는 것은 다음 7 일 동안 일몰 시간이므로 약간 확장해야합니다.
아래의 전체 샘플 코드는 다음 주에 일몰 시간 목록을 반복하는 방법을 보여줍니다.
<?php
date_default_timezone_set('America/New_York'); // 필요에 따라 올바른 시간대를 설정하십시오
// 지리적 위치를 설정하십시오(예를 들어, 뉴욕)
$latitude = 40.7128;
$longitude = -74.0060;
$sunset_times = [];
for ($i = 0; $i < 7; $i++) {
$timestamp = strtotime("+$i day");
$sunset = date_sunset(
$timestamp,
SUNFUNCS_RET_STRING,
$latitude,
$longitude,
90, // 태양은 수평선 아래에 있습니다(표준 값 90)
date("Z", $timestamp)
);
$sunset_times[] = [
'date' => date('Y-m-d', $timestamp),
'sunset' => $sunset
];
}
// 출력 결과
foreach ($sunset_times as $day) {
echo "날짜:" . $day['date'] . ",일몰 시간:" . $day['sunset'] . "<br>";
}
?>
date_default_timezone_set ()을 올바르게 설정해야합니다. 그렇지 않으면 반환 된 일몰 시간이 벗어날 수 있습니다.
날짜 ( "z", $ timestamp)는 다른 날짜에서 발생할 수있는 일광 절약 시간 변경을 자동으로 일치하는 데 사용됩니다.
90 은 표준 태양 고도 각도이며 특별한 요구가 없다면 변경하는 것이 좋습니다.
프론트 엔드를 사용하기위한 인터페이스를 통해 서버에서 다음 7 일 동안 일몰 시간 데이터를 얻으려면 다음과 같은 간단한 API를 작성할 수 있습니다.
<?php
header('Content-Type: application/json');
date_default_timezone_set('America/New_York');
$latitude = 40.7128;
$longitude = -74.0060;
$sunset_times = [];
for ($i = 0; $i < 7; $i++) {
$timestamp = strtotime("+$i day");
$sunset = date_sunset(
$timestamp,
SUNFUNCS_RET_STRING,
$latitude,
$longitude,
90,
date("Z", $timestamp)
);
$sunset_times[] = [
'date' => date('Y-m-d', $timestamp),
'sunset' => $sunset
];
}
echo json_encode($sunset_times);
?>
그런 다음 프론트 엔드는 인터페이스에 액세스 할 수 있습니다.
fetch('https://m66.net/api/sunset_times.php')
.then(response => response.json())
.then(data => {
console.log(data);
});
이런 식으로 웹 캘린더에 다음 주의 일몰 시간을 동적으로 표시 할 수 있습니다!
date_sunset () 을 통해 빠르고 안정적이며 신뢰할 수있는 타사 API에 의존하지 않고 PHP에서 일몰 시간을 매우 편리하게 계산할 수 있습니다. 보다 정확한 천문 데이터 (예 : 대기 굴절, 지형 폐색 등)가 필요한 경우 향후 전문 천문 컴퓨팅 라이브러리를 통합하는 것을 고려할 수도 있습니다. 그러나 일반적인 응용 시나리오의 경우이 방법으로는 충분합니다.