lunar -- 公历转换农历Api

测试Url:(php服务器)

https://api.aidioute.cn/lunar/

更新:

2021/01/06

JavaScript版本和PHP版本改动

修改文件:PHP/class/lunar.php (line 398) 和 Node.js/dist/class.js (line 400)

修改内容:当月份为1月份,且日期已经过了小寒节气的时候,$offset的值为-1,导致后面的$this->monthDiZhi数组无法读取下标为-1的值。

2019/03/12

JavaScript版本

添加JavaScript版本,支持node.js环境和浏览器环境

//node.js let Lunar = require("class.js") let lunar = new Lunar() //括号中可以接受传参,数据类型为字符串,格式为:yyyy-m-d 或 yyyy-mm-dd //属性和方法 lunar.year //当前公历年份 lunar.month //当前公历月份 lunar.day //当前公历日期 lunar.ylYear //当前农历年份 lunar.ylMonth //当前农历月份 lunar.ylDay //当前农历日期 lunar.getLunarTime() //获取农历中文格式(例:二月初二) lunar.getAnimals() //获取该年生肖 lunar.getYearGanZhi() //获取天干地支纪年 lunar.getMonthGanZhi() //获取天干地支纪月 lunar.getDayGanZhi() //获取天干地支纪日 lunar.getFestival() //获取该天节日 lunar.getJieQi() //获取该月节气 lunar.leapMonth() //获取该年是否有闰月,有返回月数,没有返回0

//script src直接引用dist中的class.js文件,然后创建lunar实例对象即可。

如果当前已安装node运行环境,可以直接命令行cd到Node.js文件夹中,然后运行

npm install

等待安装完之后运行

npm run run

即可运行简单的HTTP服务器,访问的url地址为

http://localhost:8000/api/lunar

**可以接受传参,传参跟php版本一致,见下文。

2019/03/08

PHP版本:5+

原php文件引用的是new DateTime对象中的 $obj->format('U')来获取当前日期相对于1900-1-31日的秒数差再除以86400(一天的秒数)的差值。 由于是小值减大值,结果是负数且带小数的,在向上取整的过程中,出现了1901-12-14和1901-12-15这两天的差值为2的情况。 意思就是

1900-01-31到1901-12-14的差值是682, 1900-01-31到1901-12-15的差值是684

貌似是PHP版本问题。在PHP7.0+的环境中运行正常,在PHP5.5版本中运行就会出现差值。 现在改成date_create()和date_diff()。问题解决。

PHP版本:7+
api入口文件:getLunar.php

说明:

该api默认不传参的时候返回当前日期所属的公历农历信息。若要传参,以get的形式提交,参数名为date,日期格式为:yyyy-m-d 或 yyyy-mm-dd。

返回的是json格式的数据。

特别注意:

该api中只包含了 1900-1-31 到 2099-12-31 期间的所有农历月份信息。天干地支和二十四节气计算方法来源于互联网,节气算法中的_C参数_只添加了_21世纪_的值,所以_20世纪_的节气计算中_可能会有差错_。而天干地支中的天干地支_月份_需要用到节气来计算,所以20世纪的天干地支_月_数据可能不准确。

例:

get: "getLunar.php?date=2019-03-08"

{ "remarks": "声明:该API返回的日期有效区间为1900-1-31到2099-12-31,天干地支纪年月日和节气有效区间为2000-01-01到2099-12-31,调用前请自己检查日期是否有效。日期格式为yyyy-mm-dd或yyyy-m-d。", "data": { "year": 2019, "month": 3, "day": 8, "nyear": 2019, "nmonth": 2, "nday": 2, "ntime": "二月初二", "animal": "猪", "gzyear": "己亥年", "gzmonth": "丁卯月", "gzday": "甲辰日", "festival": [ "国际劳动妇女节", "土地诞(龙抬头)" ], "jieqi": { "惊蛰": 6, "春分": 21 }, "leapMonth": 0, "queryTime": "2019-03-08 15:42:35" } }

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。