date_sunset

(PHP 5, PHP 7, PHP 8)

date_sunset 返回特定日期和地点的日落时间

警告

此函数已于 PHP 8.1.0 版中 弃用。强烈建议不要使用此函数。请改用 date_sun_info()

描述

date_sunset(
    int $timestamp,
    int $returnFormat = SUNFUNCS_RET_STRING,
    ?float $latitude = null,
    ?float $longitude = null,
    ?float $zenith = null,
    ?float $utcOffset = null
): string|int|float|false

date_sunset() 返回特定日期(以 timestamp 指定)和地点的日落时间。

参数

timestamp

获取日落时间的日期的 timestamp

returnFormat

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

常见的 zenith
角度 描述
90°50' 日落:太阳变得不可见的那一刻。
96° 民用曙暮光:通常用来表示黄昏的结束。
102° 航海曙暮光:地平线在海上变得不可见的那一刻。
108° 天文曙暮光:太阳不再是任何光源的那一刻。

utcOffset

以小时为单位指定。如果 returnFormatSUNFUNCS_RET_TIMESTAMP,则会忽略 utcOffset

返回值

如果成功,则返回以指定 returnFormat 格式的日落时间,否则返回 false。失败的一个可能原因是太阳根本没有落下,这在一年中的某些时候发生在极圈内。

错误/异常

如果时区无效,则每次调用日期/时间函数都会生成 E_WARNING。另请参阅 date_default_timezone_set()

变更日志

版本 描述
8.1.0 此函数已被弃用,请改用 date_sun_info()
8.0.0 latitudelongitudezenithutcOffset 现在可以为空。

示例

示例 #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)

另请参阅

  • date_sun_info() - 返回有关日落/日出和曙暮光开始/结束的数组信息

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top