在 PHP 中,date_sunset() 函数可以用来获取某地日落时间的 Unix 时间戳。这个函数非常有用,尤其是在开发天气相关应用或需要根据地理位置调整页面亮度等功能时。但 date_sunset() 返回的是 Unix 时间戳,对于普通用户来说并不友好,因此我们需要将其转换为更易读的格式,比如 HH:MM:SS 或 Y-m-d H:i:s。
下面我们通过一个示例来演示如何将 date_sunset() 的返回值转换为易读的时间格式。
<?php
// 设置默认时区
date_default_timezone_set("Asia/Shanghai");
// 获取当前时间
$timestamp = time();
// 指定纬度与经度(这里以北京为例)
$latitude = 39.9042;
$longitude = 116.4074;
// 获取日落时间(返回的是 Unix 时间戳)
$sunsetTimestamp = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
// 检查是否成功获取日落时间
if ($sunsetTimestamp !== false) {
// 转换为易读格式(24小时制)
$readableTime = date("H:i:s", $sunsetTimestamp);
echo "今日日落时间为:$readableTime";
} else {
echo "无法获取日落时间。";
}
?>
今日日落时间为:18:52:34
date_sunset() 的第二个参数 SUNFUNCS_RET_TIMESTAMP 是关键,它告诉 PHP 返回 Unix 时间戳。你也可以传入 SUNFUNCS_RET_STRING 来直接获得格式化好的时间字符串,不过手动格式化会提供更多自定义空间。
使用 date() 函数可以将 Unix 时间戳格式化为几乎任何你想要的时间格式,例如:
date("Y-m-d H:i:s", $sunsetTimestamp);
这将返回 2025-04-26 18:52:34 这样的完整时间字符串。
你可以把这个时间输出到网页上,比如:
echo "<p>今日日落时间为:$readableTime</p>";
或者用于动态背景切换: