如何从 date_sun_info() 函数中精确提取日出与日落时间

云婷同学_1674

云婷同学_1674

2026-07-05

286人浏览

原创

如何从 date_sun_info() 函数中精确提取日出与日落时间

本文详解如何使用 PHP 的 date_sun_info() 函数获取指定日期和地理坐标的日出、日落等天文时间,并通过数组键名直接访问对应时间戳,再格式化为可读的 "H:i:s" 时间字符串。

本文详解如何使用 php 的 `date_sun_info()` 函数获取指定日期和地理坐标的日出、日落等天文时间,并通过数组键名直接访问对应时间戳,再格式化为可读的 "h:i:s" 时间字符串。

date_sun_info() 是 PHP 内置函数,用于根据日期、纬度($lat)和经度($lon)计算当日的日出(sunrise)、日落(sunset)、正午(transit)、晨光始(civil_twilight_begin)、昏影终(civil_twilight_end)等 7 个关键天文时间点,返回一个以时间戳(Unix timestamp)为值的关联数组。

要准确提取日出与日落时间,无需遍历整个数组,而应直接通过键名访问:

Project IDX
Project IDX

Project IDX 是 Google 推出的云端 AI 开发工作区,现已并入 Firebase Studio。

下载
<?php $date = strtotime(date('Y-m-d')); // 获取今日时间戳
$lat  = 39.9042; // 示例:北京纬度
$lon  = 116.4074; // 示例:北京经度

$sun_info = date_sun_info($date, $lat, $lon);

if ($sun_info === false) {
    die('无法计算日出日落时间:地理坐标或日期无效');
}

// 直接提取并格式化关键时间点
$sunrise = date('H:i:s', $sun_info['sunrise']);
$sunset  = date('H:i:s', $sun_info['sunset']);
$transit = date('H:i:s', $sun_info['transit']);

echo "日出时间:{$sunrise}\n";
echo "正午时刻:{$transit}\n";
echo "日落时间:{$sunset}\n";
?>

✅ 关键要点说明:

  • $sun_info['sunrise'] 和 $sun_info['sunset'] 返回的是 Unix 时间戳(整型),需用 date() 函数转换为人类可读格式;
  • 函数在输入坐标超出有效范围(如纬度不在 -90~90、经度不在 -180~180)或日期异常时会返回 false,务必进行错误判断;
  • 支持的全部键名包括:sunrise, sunset, transit, civil_twilight_begin, civil_twilight_end, nautical_twilight_begin, nautical_twilight_end, astronomical_twilight_begin, astronomical_twilight_end(具体取决于 PHP 版本与配置,详见 PHP 官方文档);
  • 所有时间均基于本地时区(由 date_default_timezone_set() 设置),非 UTC —— 如需 UTC 时间,请先切换时区或手动调整。

掌握这种“按需取键”的方式,既提升代码可读性,又避免冗余循环,是高效处理天文时间数据的标准实践。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1629

3

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.06.27

1211

7

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

200

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

120

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

100

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

60

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

80

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习