PHP의 date_sun_info() 함수는 지정한 날짜와 위치에 대한 일출(sunrise), 일몰(sunset), 그리고 각 단계별 박명(twilight)의 시작·종료 시각 정보를 배열 형태로 반환합니다. 천문 계산이 필요한 애플리케이션에서 유용하게 활용할 수 있습니다.
문법(Syntax)
date_sun_info(timestamp, latitude, longitude)
매개변수(Parameters)
timestamp − 조회하려는 날짜의 타임스탬프입니다. 필수
latitude − 해당 지역의 위도를 도(degree) 단위로 지정합니다. 필수
longitude − 해당 지역의 경도를 도(degree) 단위로 지정합니다. 필수
반환값(Return)
date_sun_info() 함수는 일출·일몰 시각과 박명 시작·종료 시각에 대한 정보를 담은 연관 배열을 반환합니다.
반환되는 배열의 구조는 다음과 같습니다.
sunrise − 일출 시각 (천정각 = 90°35')
sunset − 일몰 시각 (천정각 = 90°35')
transit − 태양이 하늘에서 가장 높은 지점, 즉 천정에 도달하는 시각
civil_twilight_begin − 시민박명(civil dawn)의 시작 시각 (천정각 = 96°). 일출 시점에 종료됩니다.
civil_twilight_end − 시민박명(civil dusk)의 종료 시각 (천정각 = 96°). 일몰 시점에 시작됩니다.
nautical_twilight_begin − 항해박명(nautical dawn)의 시작 시각 (천정각 = 102°). civil_twilight_begin 시점에 종료됩니다.
nautical_twilight_end − 항해박명(nautical dusk)의 종료 시각 (천정각 = 102°). civil_twilight_end 시점에 시작됩니다.
astronomical_twilight_begin − 천문박명(astronomical dawn)의 시작 시각 (천정각 = 108°). nautical_twilight_begin 시점에 종료됩니다.
astronomical_twilight_end − 천문박명(astronomical dusk)의 종료 시각 (천정각 = 108°). nautical_twilight_end 시점에 시작됩니다.
사용 예제
다음은 2018년 9월 23일, 위도 31.7667°, 경도 35.2333° 지역의 일출·일몰 정보를 조회하는 예제입니다.
<?php
$info = date_sun_info(strtotime("2018-09-23"), 31.7667, 35.2333);
foreach ($info as $key => $val) {
echo "$key: " . date("H:i:s", $val) . "
";
}
?>실행 결과
sunrise: 03:28:06 sunset: 15:34:29 transit: 09:31:18 civil_twilight_begin: 03:03:51 civil_twilight_end: 15:58:44 nautical_twilight_begin: 02:35:30 nautical_twilight_end: 16:27:05 astronomical_twilight_begin: 02:06:54 astronomical_twilight_end: 16:55:41