zoukankan      html  css  js  c++  java
  • 前端js读取excel、xlsx文件日期被转为数字,日期格式转换

    记录一下,日常debug

    网上最普遍的方法

    `function formatDate(numb, format) {
            const time = new Date((numb - 1) * 24 * 3600000 + 1);
            time.setYear(time.getFullYear() - 70)
            const year = time.getFullYear() ;
            const month = time.getMonth() + 1 ;
            const date = time.getDate() - 1 ;
            return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
        }`
    
    但是亲测这个方法有误差,算出来的时间有可能会少一天,比如我excel里面输入的是2022/03/08,转换数字为44628.
    转换出来确是2022/03/07
    

    正确的算法应该是:
    `function formatDate(numb, format) {
            const old = numb - 1;
            const t = Math.round((old - Math.floor(old)) * 24 * 60 * 60);
            const time = new Date(1900, 0, old, 0, 0, t)
            const year = time.getFullYear() ;
            const month = time.getMonth() + 1 ;
            const date = time.getDate() ;
            return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
        }`
    

  • 相关阅读:
    书单
    parzen 窗的matlab实现
    Oracle-07
    图片加载不出来
    省市区三表建立及数据插入
    a链接与button按钮混用
    省市区三级联动,获取地区编号,JSON格式
    纯JS省市区三级联动
    JDK与JRE的区别
    web-03-jQuery
  • 原文地址:https://www.cnblogs.com/xyyl/p/15248363.html
Copyright © 2011-2022 走看看