Lunar日历工具库

简介

如果你想做一款和日历相关的应用或者网站,非常推荐Lunar这个项目,可以搭建属于自己的API。

lunar是一个支持阳历、阴历、佛历和道历的日历工具库,它开源免费,有多种开发语言的版本,不依赖第三方,支持阳历、阴历、佛历、道历、儒略日的相互转换,还支持星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。仅供参考,切勿迷信。

支持的时间跨度约为0001年至9999年。

节气的计算基于寿星天文历v5.10的核心算法并根据需要做了一些改造。

示例

图片[1]-Lunar日历工具库-梦溪博客

快速开始

项目文档

有兴趣的可以直接去看项目文档,文档中提供了各种语言的版本和安装方法,这里我使用PHP版本单文件安装。

  • 首先从GitHub或者Gitee打包下载文件源码并上传至服务器网站目录下,这里我使用的是宝塔面板。
图片[2]-Lunar日历工具库-梦溪博客

项目内置了demo,直接访问即可得到相关信息,此时已经成功了一半。

图片[3]-Lunar日历工具库-梦溪博客

获取当天日期

我们只需要进行简单的改动,就可以获取当天的日期相关信息。

添加以下代码:

// 获取当前日期
$year = (int)date('Y');
$month = (int)date('m');
$day = (int)date('d');
//删除原有代码或者直接替换相应参数
$lunar =  Lunar::fromYmd($year, $month, $day);
图片[4]-Lunar日历工具库-梦溪博客

当然,其他信息的获取用类似的方法去替换。

这里,我做了一些简单的更改,和使用json格式输出。

图片[5]-Lunar日历工具库-梦溪博客

完整代码:

<?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
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容