(PHP 5, PHP 7, PHP 8)
date_sunset — 傳回指定日期和位置的日落時間
此函式自 PHP 8.1.0 起已被 _棄用_。強烈建議不要依賴此函式。請改用 date_sun_info()。
$timestamp
,$returnFormat
= SUNFUNCS_RET_STRING
,$latitude
= null
,$longitude
= null
,$zenith
= null
,$utcOffset
= null
date_sunset() 會傳回指定日期(以 timestamp
指定)和位置的日落時間。
timestamp
用於取得日落時間的日期 timestamp
。
returnFormat
常數 | 說明 | 範例 |
---|---|---|
SUNFUNCS_RET_STRING | 以 字串 格式傳回結果 | 16:46 |
SUNFUNCS_RET_DOUBLE | 以 浮點數 格式傳回結果 | 16.78243132 |
SUNFUNCS_RET_TIMESTAMP | 以 整數 (timestamp) 格式傳回結果 | 1095034606 |
latitude
預設為北緯,若為南緯請傳入負值。另請參閱:date.default_latitude
longitude
預設為東經,若為西經請傳入負值。另請參閱:date.default_longitude
zenith
zenith
是太陽中心與垂直於地球表面的線之間的夾角。預設值為 date.sunset_zenith
角度 | 說明 |
---|---|
90°50' | 日落:太陽變得不可見的點。 |
96° | 民用曙暮光:通常用於表示黃昏結束。 |
102° | 航海曙暮光:在海上地平線不再可見的點。 |
108° | 天文曙暮光:太陽不再是任何光源的點。 |
utcOffset
以小時為單位。如果 returnFormat
是 SUNFUNCS_RET_TIMESTAMP
,則 utcOffset
會被忽略。
成功時,會以指定的 returnFormat
傳回日落時間;失敗時,則傳回 false
。失敗的其中一個可能原因是太陽根本沒有落下,這種情況發生在極圈內的部分時間。
如果時區無效,每次呼叫日期/時間函式都會產生 E_WARNING
錯誤。另請參閱 date_default_timezone_set()
範例 #1 date_sunset() 範例
<?php
/* 計算葡萄牙里斯本的日落時間
緯度:北緯 38.4 度
經度:西經 9 度
天頂角 ~= 90
時差:+1 GMT
*/
echo date("D M d Y"). ', 日落時間:' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
?>
上述範例將輸出類似以下的內容
Mon Dec 20 2004, sunset time : 18:13
範例 #2 無日落
<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>
上述範例將輸出
bool(false)