JS 读取 excel 数据后的时间格式转换

一、将 excel 日期数值转换为正常日期格式
  • 使用 xlsx.full.min.js 获取 excel 的日期数据为:42358

  • 拿到的整数值是日期距离 1900年1月1日 的天数,这时需要写一个函数转换:

    function formatDate (numb, format) {
      let time = new Date((numb - 1) * 24 * 3600000 + 1)
      time.setYear(time.getFullYear() - 70)
      let year = time.getFullYear() + ''
      let month = time.getMonth() + 1 + ''
      let date = time.getDate() + ''
      if(format && format.length === 1) {
        return year + format + month + format + date
      }
      return year+(month < 10 ? '0' + month : month)+(date < 10 ? '0' + date : date)
    }
    
    console.log(formatDate(42358, '/'))
    
    输出:`2015/12/20`
    
二、将正常日期格式转换为 Excel 日期数值
  • 计算 1900-01-01 - 2015-12-20 间隔多少天

    function fun () {
        let startTime = new Date('1900-01-01'); // 开始时间
        let endTime = new Date('2015-12-20'); // 结束时间
        // 间隔天数,为什么需要 +2,这里计算出来的只是中间的差值天数,加开头结尾的各一天就是2天,所以 +2
        return Math.floor((endTime - startTime) / 1000 / 60 / 60 / 24) + 2
    }
    
    console.log(fun())
    
    输出:`42358`
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值