(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 | 将结果作为 string 返回 | 16:46 |
SUNFUNCS_RET_DOUBLE | 将结果作为 float 返回 | 16.78243132 |
SUNFUNCS_RET_TIMESTAMP | 将结果作为 int(时间戳)返回 | 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)