1986年到1991年间 阴历转阳历时辰出错
marga8080 opened this issue · comments
1986年到1991年间 这六年 阴历转阳历时辰出错
比如农历1986年6月11日午时
let ymd = {
year: 1986,
month: 6,
day: 11,
hour: '午'
}
// console.log(ymd)
const ob = lunisolar.fromLunar(ymd)
console.log(ob.format('YYYY-MM-DD HH:mm'))
正确应该是1986-07-17 12:00
但是得到的却是1986-07-17 13:00
1986年到1991年间 这六年 阴历转阳历时辰出错 比如农历1986年6月11日午时
let ymd = { year: 1986, month: 6, day: 11, hour: '午' } // console.log(ymd) const ob = lunisolar.fromLunar(ymd) console.log(ob.format('YYYY-MM-DD HH:mm'))
正确应该是1986-07-17 12:00 但是得到的却是1986-07-17 13:00
您好,我用了你的示例去测式,返回的是 1986-07-17 12:00
并没有复现你所说的问题。
我也再检查了一下代码,理论上时辰不会返回单数点给你,
fromLunar的转换逻辑是:
1,先把当年所有的阴历新年对应的公历日期查出来,转为date对象,使用 xxxx-xx-xx 日期字符串转换,得到的是当地0时的日期 nyd
。
2,计算目标阴历日期 与 nyd
相差多少天 diffDay
,
3, 计算时辰,取得午
时的时辰顺序索引 6
,
4, nyd时间戳 + (diffDay * 24 * 60 * 60 * 1000) + (6 * 2 * 60 * 60 * 1000)
所得到的新时间戳就是结果。 因为nyd取的是0点时间,而时辰索引必定 * 2,所以计算出来的结果的时间必定是双数钟点时间。
初步怀疑原因:
1 浏览器是否装有时区相关的插件,影响显示?
我国在1986年到1991年这六年时间实行夏令时,导致那几天时钟拨快一小时
https://upimg.baike.so.com/doc/1958074-2072189.html
我国在1986年到1991年这六年时间实行夏令时,导致那几天时钟拨快一小时 https://upimg.baike.so.com/doc/1958074-2072189.html
收到,后续我会处理这个情况。