현재 위치: > 최신 기사 목록> date_sunset () 함수가 False를 반환하는 이유는 무엇입니까? 원인은 무엇입니까?

date_sunset () 함수가 False를 반환하는 이유는 무엇입니까? 원인은 무엇입니까?

M66 2025-06-23

php에서 date_sunset () 함수는 지정된 시간과 위치의 일몰 시간을 계산하여 타임 스탬프 또는 형식의 문자열을 반환하는 데 사용됩니다. 그러나 경우에 따라 함수는 False를 반환합니다. 이는 일반적으로 오류가 발생하거나 계산이 실패했음을 나타냅니다. 이 기사는 date_sunset ()가 거짓을 반환하고 이러한 문제를 피하는 방법을 원인으로하는 몇 가지 일반적인 이유로 뛰어납니다.

1. 매개 변수가 잘못 전달됩니다

date_sunset () 의 표준 사용량은 다음과 같습니다.

 date_sunset(
    int $timestamp,
    int $returnFormat = 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 $gmtOffset = 0
): string|int|false

특정 매개 변수가 올바르게 전달되지 않으면, 특히 위도 ( $ Latitude ) 및 경도 ( $ longitude )가 올바르게 전달되면 함수가 False를 반환 할 수 있습니다.

예:

 // 오류 예제:위도와 경도는 설정되지 않습니다
$sunset = date_sunset(time());
if ($sunset === false) {
    echo "일몰 시간을 계산할 수 없습니다";
}

해결책 : 유효한 위도 및 경도 값이 전달되는지 확인하십시오.

 $sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 31.7667, 35.2333, 90, 2);

2. 잘못된 위도 또는 경도

들어오는 위도가 -90에서 90 사이에 있지 않거나 경도가 -180에서 180 사이 인 경우 함수는 올바르게 처리되지 않으며 직접 거짓을 반환합니다.

예:

 // 잘못된 위도와 경도
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 1234, 5678); // 실수

매개 변수가 실제 지리적 좌표 범위를 충족하는지 확인하십시오.

3. 타임 스탬프는 지원 범위를 넘어선 것입니다

date_sunset () 에서 사용하는 내부 계산은 타임 스탬프에 따라 다릅니다. 타임 스탬프가 PHP (특히 32 비트 시스템에서)가 지원하는 정수 범위를 초과하면 False가 반환 될 수 있습니다.

예:

 // 초과하다 32 비트 시스템의 타임 스탬프 범위
$sunset = date_sunset(99999999999, SUNFUNCS_RET_STRING, 40.7128, -74.0060);

시간 () 또는 합리적인 strtotime ()을 사용하여 합법적 인 타임 스탬프를 생성하는 것이 좋습니다.

4. 구성 항목이 올바르게 설정되지 않았습니다 ( php.ini )

PHP를 사용하면 php.ini 파일을 통해 기본 위도, 경도 및 천정을 설정할 수 있습니다. 이러한 값이 설정되지 않았거나 잘못 구성된 경우 DATE_SUNSET () 도 간접적으로 제대로 작동하지 않을 수도 있습니다.

검사 방법 :

 echo ini_get('date.default_latitude');
echo ini_get('date.default_longitude');

출력이 비어 있거나 숫자가 아닌 경우이 매개 변수는 코드에서 수동으로 전달되어야합니다.

5. 위치는 보이지 않는 태양 현상을 유발합니다 (Polar Night)

극지 지역에서는 태양이 일년 중 특정 시간 (예 : 북극의 극지)과 같은 시간에 상승하거나 세워지지 않습니다. 이 경우 Date_sunset ()은 그날 "일몰"현상이 없기 때문에 False를 반환 할 수도 있습니다.

예:

 // 북극의 위치,하루에 일몰이 없습니다
$sunset = date_sunset(strtotime("2025-01-01"), SUNFUNCS_RET_STRING, 89.9, 135.0);

6. 시간대 또는 GMT 오프셋 설정 오류

마지막 매개 변수 $ gmtoffset은 몇 시간 안에 GMT (UTC)의 오프셋을 제어합니다. 값이 비합리적으로 설정되면 결과가 충족되지 않을 수도 있습니다.

예를 들어 베이징 시간은 +8.0 이어야합니다. -8.0 으로 설정하면 잘못된 결과를 얻거나 거짓이 발생할 수 있습니다.

결론

date_sunset () 는 매우 실용적인 시간 기능이지만 여러 매개 변수에 따라 다르며 오류로 인해 거짓이 반환 될 수 있습니다. 올바른 사용법에는 다음이 포함되어야합니다.

  • 타임 스탬프 , 위도경도 와 같은 주요 매개 변수를 명확하게 전달합니다.

  • php.ini 의 관련 구성에 문제가 있는지 확인하십시오.

  • 극단적 인 지리적 또는 시간 조건에서 전화를 피하십시오