简介
如果你想做一款和日历相关的应用或者网站,非常推荐Lunar这个项目,可以搭建属于自己的API。
lunar是一个支持阳历、阴历、佛历和道历的日历工具库,它开源免费,有多种开发语言的版本,不依赖第三方,支持阳历、阴历、佛历、道历、儒略日的相互转换,还支持星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。仅供参考,切勿迷信。
支持的时间跨度约为0001年至9999年。
节气的计算基于寿星天文历v5.10的核心算法并根据需要做了一些改造。
示例
快速开始
有兴趣的可以直接去看项目文档,文档中提供了各种语言的版本和安装方法,这里我使用PHP版本单文件安装。
- 首先从GitHub或者Gitee打包下载文件源码并上传至服务器网站目录下,这里我使用的是宝塔面板。
项目内置了demo,直接访问即可得到相关信息,此时已经成功了一半。
获取当天日期
我们只需要进行简单的改动,就可以获取当天的日期相关信息。
添加以下代码:
// 获取当前日期
$year = (int)date('Y');
$month = (int)date('m');
$day = (int)date('d');
//删除原有代码或者直接替换相应参数
$lunar = Lunar::fromYmd($year, $month, $day);
当然,其他信息的获取用类似的方法去替换。
这里,我做了一些简单的更改,和使用json格式输出。
完整代码:
<?php
require 'Lunar.php';
use com\nlf\calendar\Foto;
use com\nlf\calendar\LunarYear;
use com\nlf\calendar\util\HolidayUtil;
use com\nlf\calendar\Lunar;
use com\nlf\calendar\Solar;
// 获取当前日期
$year = (int)date('Y');
$month = (int)date('m');
$day = (int)date('d');
//删除原有代码或者直接替换相应参数
$lunar = Lunar::fromYmd($year, $month, $day);
$data = [
'lunar_date' => $lunar->toFullString(),
'solar_date' => $lunar->getSolar()->toFullString(),
];
// Holiday
$data['holiday'] = HolidayUtil::getHoliday("$year-$month-$day");
// Julian day
$solar = Solar::fromYmd($year, $month, $day);
$data['julian_day'] = $solar->getJulianDay();
// Solar from Julian day
$solar = Solar::fromJulianDay(2459045.5);
$data['solar_from_julian_day'] = $solar->toFullString();
// Loop through solar terms table
$lunar = Lunar::fromDate(new DateTime("$year-$month-$day"));
$jieQi = $lunar->getJieQiTable();
$data['solar_terms'] = [];
foreach ($jieQi as $key => $value) {
$data['solar_terms'][$key] = $value->toYmdHms();
}
echo json_encode($data, JSON_PRETTY_PRINT) . "\n";
// Other operations...
?>
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容