转换成的一串数字代表的是距离1900-1-1的天数

网上最普遍的方法:

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)}

但是亲测这个方法有误差,算出来的时间有可能会平年少一天( time.getDate() - 1 ),比如我excel里面输入的是2022/03/08,转换数字为44628.转换出来确是2022/03/07,time.getDate()会闰年多一天,2024/6/1会变成2024/6/2。

正确的算法应该是:

方法1:

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);}

方法2:

//timeValue是指excel中的时间整数值function formatDate(timeValue) {let time = new Date((timeValue - 1) * 24 * 3600000 + 1);time.setYear(time.getFullYear() - 70);let year = time.getFullYear() + "";let month = time.getMonth() + 1 + "";let date = time.getDate() + "";if (leapyear(year)) {//如果是闰年date = time.getDate() - 1 + "";}return year + "-" + (month < 10 ? "0" + month : month) + "-" + (date < 10 ? "0" + date : date);}//区分闰年与平年function leapyear(year) {var flag = false;if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {flag = true;}return flag;}

js读取excel时时间会转为一串数字,但是在获取具体时间时为什么有的年份会多加一天?相关推荐

  1. JS读取Excel时日期格式错误

    问题:在做项目的过程中遇到一个问题,导入excel数据时,发现日期的格式错误.预期效果是2022/1/2,导入后的效果却是44563.查阅资料后发现44563表示 1900年1月1号到2022年1月2 ...

  2. js读取excel或者导出成excel时权限设置问题

    当我们在使用js读取excel,或者导出excel的时候都会有权限问题. 做如下设定即可.IE8 1.将网站加入到信任的网站. 2.更改插件的使用权限: 经过以上两个步骤就可以了.

  3. js 读取excel 导入mysql_可以读取EXCEL文件的js代码

    首页给个有中文说明的例子,下面的例子很多大家可以多测试. function readExcel() { var excelApp; var excelWorkBook; var excelSheet; ...

  4. js读取Excel的数据(仅IE有效)

    js读取Excel,返回一个二维数组 /*** desc:解析一个本地excel,返回一个二维数组* param {}对象 属性 path,sheet,rowStart,rowEnd,colStart ...

  5. java解析excel的js页面,js读取excel文件并显示

    js读取excel文件并展示 本帖最后由 a911dalin 于 2013-12-30 13:01:17 编辑 如题,读取excel中所有数据和格式,求大神帮忙,明天就得赶出来 分享到: 更多 --- ...

  6. xlsx.full.js读取Excel数据转换成二维数组,sheet_to_array

    xlsx.full.js读取Excel的sheet数据转换成二维数组,sheet_to_array 解析sheet数据为二维数组 测试方法 效果 鉴于js-xlsx.js没有XLSX.util.she ...

  7. js读取excel数据后的时间格式转换

    用nodejs的"node-xlsx"库,获取excel的数据之后,里面的日期值全面变成了一个整数值.至于,怎么使用"node-xlsx"获取数据,代码: co ...

  8. js 读取excel文件中的时间格式转换问题

    将 44901.3576388889 excel读取的时间戳 转换为 2022-12-06 08:28 /*** @param {number} time 传入的时间* @param {blob} f ...

  9. python读取Excel指定范围并转为数组

    最近需要读取Excel中的内容,然后进行后续操作,对于这块知识,博主以前以为自己不会涉及到,但是现在一涉及到,第一步就错了,搞了好久.真的心累.因此写了这篇博客. 目的:excel中存放着数据,如果要 ...

最新文章

  1. c语言里变量列表,嵌入式C语言里的土豪们之变量类型
  2. 乌班图linux配置yum仓库,Linux系统的仓库配置(yum、epel)与软件安装(wireshark,wget,nginx)...
  3. 举例讲清楚模型树和回归树的区别
  4. 苹果平板怎么卸载软件_苹果TF签名丨怎么卸载testflight下载的应用?
  5. 进击吧! Blazor !第二期 回顾
  6. Bootstrap HTML 编码规范之实用为王
  7. mysql数据库如何配置服务_MySQL服务如何实现安装及配置
  8. oracle数据库匿名快,pl/sql分匿名块和命名块
  9. java excel 导入导出_java中excel文件的导入和导出
  10. Struts2校验器(二)之注解
  11. 如何用iMazing Profile Editor编辑配置文件
  12. 系统监视器(Sysmon)工具的使用
  13. rescale matlab,frft_matlab integrated algorithm about Frft, matla - CodeBus
  14. 正则表达式 -文书网ktr
  15. php录音功能,关于录音功能的详细介绍
  16. 4G模块 | 基于4G Cat.1的内网穿透实践
  17. 挺准的皮肤检测皱纹问答测试题
  18. 中国建设银行数据治理实践的三高、四落、八行为
  19. Qt编写安防视频监控系统49-多数据库支持
  20. GPON标准简要解析

热门文章

  1. 学游戏建模,该如何成功入职游戏公司,成为一名模型师?
  2. 《向往的生活 》观后感
  3. 从IPC到分布式软总线的随笔
  4. [2014年学习计划之RoR系列] 第一步 - 搭建开发环境
  5. 工具篇(六)windows 程序员计算器 详细解释
  6. 本科生学习GNSS算法 中级教程(四)- rtklib多系统多频单点定位算法 - rtklib日志解析以及算法调试
  7. P6入门:了解P6 Professional 工具栏及地图分享
  8. javafx打包成的jar包中包含excel等office模板文件,如何从jar包中读取这些模板文件?
  9. 经典回顾:用pygame模块做一个飞机大战
  10. Android自定义View实现雷达扫描动画