使用默认的公历农历,转换器选择1970年1月到4月的某一天,返回的公历时间出错,
例如我选择1970年4月1日,返回的时间戳,自动到7920000000000 2222年12月23日,选择其他年份和日期没有错误,都纳闷了。不知道什么原因。
<jh-lunar-picker isShow='{{isShowTimePicker}}' bind:confirm="onConfirm" />
组件库有个BUG,作者判断位数来判断是否是毫秒还是秒,你选的这个时间不够10位所以触发了这个BUG
临时修复代码timeUtils.js 102行
if (typeof time === 'object') {} else {
if((''+time).endsWith('0000')){}
else if (('' + time).length === 10) time = parseInt(time) * 1000
date = new Date(time)
}
源代码方便贴一下吗?
我采用的是https://github.com/iotjin/jh-weapp-demo 官方组件,并没有做任何修改。估计是官方组件日期转换出错
你还是检查一下吧,我从插件作者贴的体验二维码扫进去,也选了1970年4月1日,并没有出现你所述的问题。
是负数了吧?1970年4月1日应该是基准日之前的日期,需要对负数进行处理
对,确实会这样,可以去反馈一下
公历转换为农历
let nongli = calendarFormatter.solar2lunar(2020,5,26);
console.log(nongli);
// 结果如下:
// {
// Animal: "鼠",
// IDayCn: "初四",
// IMonthCn: "闰四月",
// Term: null, //24节气的中文名
// astro: "双子座",
// cDay: 26,
// cMonth: 5,
// cYear: 2020,
// gzDay: "己巳",
// gzMonth: "辛巳",
// gzYear: "庚子",
// isLeap: true, // 是否是农历的闰月
// isTerm: false, //是否是24节气
// isToday: false, //是否是今天
// lDay: 4,
// lMonth: 4,
// lYear: 2020,
// nWeek: 2,
// ncWeek: "星期二"
// }
农历转换为公历
let gongli = calendarFormatter.lunar2solar(2021, 9, 3);
console.log(gongli)
// 结果如下:
// 结果如下:
// {
// Animal: "牛"
// IDayCn: "初三"
// IMonthCn: "九月"
// Term: "寒露"
// astro: "天秤座"
// cDay: 8
// cMonth: 10
// cYear: 2021
// gzDay: "己丑"
// gzMonth: "戊戌"
// gzYear: "辛丑"
// isLeap: false
// isTerm: true
// isToday: false
// lDay: 3
// lMonth: 9
// lYear: 2021
// nWeek: 5
// ncWeek: "星期五"
// }