현재 위치: > 최신 기사 목록> date_sunset 및 date_sunrise 함수와 함께 주간 지속 시간을 계산하는 방법은 무엇입니까?

date_sunset 및 date_sunrise 함수와 함께 주간 지속 시간을 계산하는 방법은 무엇입니까?

gitbox 2025-05-28

php에서 date_sunrise ()date_sunset ()은 지정된 날짜 및 지리적 좌표를 기반으로 하루의 일출 및 일몰 시간을 계산할 수있는 매우 실용적인 기능입니다. 이 두 기능을 결합함으로써 총 하루 지속 시간을 매우 쉽게 계산할 수 있습니다.

이는 자동 조명 전환, 스마트 농장, 야외 활동 관리 및 기타 시스템과 같은 일일 길이에 따라 비즈니스 로직 조정이 필요한 응용 프로그램 시나리오에 매우 유용합니다.

기본 기능 소개

date_sunrise ()

 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 ()

 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 "无法计算日出或일몰 시간。좌표 또는 날짜 설정을 확인하십시오。";
}

주목해야 할 것

  1. date_sunrise ()date_sunset () 에서 사용하는 Zenith 각도는 기본적으로 90도입니다. 이것은 일출과 일몰 시간이 수평선이 방금 상승하거나 떨어진 위치에서 계산된다는 것을 의미합니다. 필요에 따라 조정할 수 있습니다.

  2. 출력 시간이 현지 시간을 준수하는지 확인하려면 시간대 오프셋 ( $ gmt_offset )을 올바르게 설정해야합니다.

  3. 반환 된 거짓 이라면 일반적으로 비정상 좌표 설정, 극단적 인 날 또는 극단적 인 밤과 같은 특별한 상황 때문입니다.

응용 프로그램 확장

이 계산 방법은 다음과 같은 시간에 민감한 시스템에 쉽게 내장 될 수 있습니다.

  • 자동 조명 시스템 (스마트 홈 컨트롤러 등)

  • https://api.gitbox.net/astro/daylength?lat=39.9&lon=116.4 와 같은 천문 API 인터페이스

  • 실시간 주간 변경을 보여주는 실외 날씨 위젯

PHP가 제공하는 이러한 태양열 기능을 사용하여 외부 서비스에 의존하지 않고 태양 고도 각도와 관련된 시간 데이터를 정확하게 얻을 수 있으며, 시스템에보다 지능적으로 판단 할 수 있습니다.