php에서 date_sunrise () 및 date_sunset ()은 지정된 날짜 및 지리적 좌표를 기반으로 하루의 일출 및 일몰 시간을 계산할 수있는 매우 실용적인 기능입니다. 이 두 기능을 결합함으로써 총 하루 지속 시간을 매우 쉽게 계산할 수 있습니다.
이는 자동 조명 전환, 스마트 농장, 야외 활동 관리 및 기타 시스템과 같은 일일 길이에 따라 비즈니스 로직 조정이 필요한 응용 프로그램 시나리오에 매우 유용합니다.
date_sunrise(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = ini_get("date.default_latitude"), float $longitude = ini_get("date.default_longitude"), float $zenith = ini_get("date.sunrise_zenith"), float $gmt_offset = 0): string|int|float|false
date_sunset(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = ini_get("date.default_latitude"), float $longitude = ini_get("date.default_longitude"), float $zenith = ini_get("date.sunset_zenith"), float $gmt_offset = 0): string|int|float|false
구체적인 예제를 사용하여 주간 계산 방법을 설명하겠습니다.
날짜 : 현재 날짜
좌표 : 베이징 시티 (위도 39.9042, 경도 116.4074)
시간대 : 동석 지구 (UTC+8)
<?php
date_default_timezone_set('Asia/Shanghai');
$timestamp = time();
$latitude = 39.9042;
$longitude = 116.4074;
$gmt_offset = 8;
// 일출과 일몰 시간을 얻으십시오(~에 의해 UNIX 타임 스탬프 형식으로 반환하십시오)
$sunrise = date_sunrise($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90, $gmt_offset);
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90, $gmt_offset);
if ($sunrise !== false && $sunset !== false) {
$dayLength = $sunset - $sunrise;
// 시간 및 분 형식으로 변환합니다
$hours = floor($dayLength / 3600);
$minutes = floor(($dayLength % 3600) / 60);
echo "일출 시간: " . date("H:i:s", $sunrise) . PHP_EOL;
echo "일몰 시간: " . date("H:i:s", $sunset) . PHP_EOL;
echo "낮: {$hours}시간{$minutes}분" . PHP_EOL;
} else {
echo "无法计算日出或일몰 시간。좌표 또는 날짜 설정을 확인하십시오。";
}
date_sunrise () 및 date_sunset () 에서 사용하는 Zenith 각도는 기본적으로 90도입니다. 이것은 일출과 일몰 시간이 수평선이 방금 상승하거나 떨어진 위치에서 계산된다는 것을 의미합니다. 필요에 따라 조정할 수 있습니다.
출력 시간이 현지 시간을 준수하는지 확인하려면 시간대 오프셋 ( $ gmt_offset )을 올바르게 설정해야합니다.
반환 된 거짓 이라면 일반적으로 비정상 좌표 설정, 극단적 인 날 또는 극단적 인 밤과 같은 특별한 상황 때문입니다.
이 계산 방법은 다음과 같은 시간에 민감한 시스템에 쉽게 내장 될 수 있습니다.
자동 조명 시스템 (스마트 홈 컨트롤러 등)
https://api.gitbox.net/astro/daylength?lat=39.9&lon=116.4 와 같은 천문 API 인터페이스
실시간 주간 변경을 보여주는 실외 날씨 위젯
PHP가 제공하는 이러한 태양열 기능을 사용하여 외부 서비스에 의존하지 않고 태양 고도 각도와 관련된 시간 데이터를 정확하게 얻을 수 있으며, 시스템에보다 지능적으로 판단 할 수 있습니다.