公历农历日期转换出错

问题遇到的现象和发生背景

使用默认的公历农历,转换器选择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)
  }

img

源代码方便贴一下吗?

我采用的是https://github.com/iotjin/jh-weapp-demo 官方组件,并没有做任何修改。估计是官方组件日期转换出错

img


选择1970年4月1日

img


返回的时间是2215年

img

你还是检查一下吧,我从插件作者贴的体验二维码扫进去,也选了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: "星期五"
            // }

https://blog.csdn.net/bamboozjy/article/details/120821870