Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP date_sun_info() 함수 – 일출·일몰 및 박명 시각 정보 조회하기

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