首页 > 其他分享 >关于前端上传excell时间的问题

关于前端上传excell时间的问题

时间:2024-05-30 12:10:39浏览次数:22  
标签:millisecond const format 前端 Excel 1970 excell num 上传

当前端导入excell里的数据时,只能获取到下面类似的这种数据

Excel存储的日期是从1900年1月1日开始按天数来计算的,也就是说1900年1月1日在Excel中是1。

转化的思路和对Excel中的错误的处理

因为时间戳是从1970年1月1日算起的(时间戳为0的时候是1970年1月1日)也就是说new Date(0).toLocaleDateString('zh')的值是1970/1/1。

而1970年1月1日这一天在Excel中是25569,那就令从Excel中获取到的值减去25569,然后再乘以24*60*60*1000获取到这一天的毫秒数,再new Date(这个毫秒数)就能得到转换后的日期了。

就是当Excel的值小于61的时候转换的时间跟正常时间相差一天

 最终代码

/**
 * 格式化Excel表中存储的年月日日期
 * @param {number} num - excel存储的数字
 * @param {string} [format = '-'] - 年月日的间隔符,默认为'-'
 * @returns {string} 格式化后的日期
 */
function formatExcelDate(num, format = '-') {
  if (!/^\d+$/.test(num)) return
  num = parseInt(num)
  let millisecond = 0 // 转化后的毫秒数
  if (num > 60) { // 对大于60的日期进行减1处理
    millisecond = (num - 25568 - 1) * 3600 * 24 * 1000
  } else {
    millisecond = (num - 25568) * 3600 * 24 * 1000
  }
  const date = new Date(millisecond) // 根据转化后的毫秒数获取对应的时间
  const yy = date.getFullYear()
  const m = date.getMonth() + 1
  const mm = m >= 10 ? m : '0' + m
  const d = date.getDate()
  const dd = d >= 10 ? d : '0' + d
  return yy + format + mm + format + dd // 返回格式化后的日期
}

 

原创出处

 

标签:millisecond,const,format,前端,Excel,1970,excell,num,上传
From: https://www.cnblogs.com/wcq520/p/18222101

相关文章

  • 在三维前端项目开发中THREE.PerspectiveCamera创建透视相机对象
    在Three.js中,可以使用THREE.PerspectiveCamera函数创建一个透视相机对象。大家好!艾斯视觉作为在IT行业中负责ui设计和前端开发环节的服务商很高兴能在这里与大家共同探讨学习:THREE.PerspectiveCamera的参数如下:fov:垂直视野角度,以角度为单位。通常,这个值在45到90之间。a......
  • 三维前端开发项目中Threejs的THREEScene函数详解
    THREE.Scene函数用于创建一个场景对象。大家好!艾斯视觉作为在IT行业中负责ui设计和前端开发环节的服务商很高兴能在这里与大家共同探讨学习:场景是Three.js中所有图形元素的容器,它可以包含相机、光源、几何体、材质等。创建场景对象的基本语法如下:constscene=newTHREE.S......
  • 前端需要知道的缓存知识总结
    HTTP缓存是一种用于提高网站性能和减少带宽使用的技术。当用户访问一个网页时,浏览器会下载页面上的所有资源(如HTML、CSS、JavaScript等),这些资源会占用大量的带宽和时间。为了减少这些资源的加载时间,HTTP缓存机制被引入。......
  • 如何使用前端表格控件实现多数据源整合?
    前言作为表格产品的典型应用场景之一,几乎所有的行业都会存在类Excel报表开发这样的应用场景,而在这些应用场景中,经常会遇见下面的这些痛点:报表数据往往来自多个不同的数据源,需要报表系统能够同时连接多个数据源,并融合不同的数据格式实际的报表中需要对数据结果进行逻辑计算,例......
  • 基于Spring Boot框架的分页查询和文件上传
    分页查询分析要想从数据库中进行分页查询,我们要使用LIMIT关键字,格式为:limit开始索引每页显示的条数假设一页想展示10条数据 查询第1页数据的SQL语句是:select*fromemplimit0,10;查询第2页数据的SQL语句是:select*fromemplimit10,10;查询第3页的数据的SQL......
  • Springboot本地+oss存储文件上传
    一、本地上传二、oss上传一:本地上传废话不多说直接搂代码html:<body><formmethod="post"enctype="multipart/form-data"id="form"><inputtype="file"name="xxx"id="xxx"></form><inputt......
  • 深入解析Web前端三大主流框架:Angular、React和Vue
    Web前端三大主流框架分别是Angular、React和Vue。下面我将为您详细介绍这三大框架的特点和使用指南。Angular核心概念:组件(Components):组件是Angular应用的构建块,每个组件由一个带有装饰器的类、一个HTML模板、一个CSS样式表组成。组件通过输入(@Input)和输出(@Output)装饰......
  • 前端学习笔记——JavaScript基础语言的学习(三)
    作者简介:大家好,本人刚专升本上岸,是个前端小菜鸟。每日都会虚心的学习。有什么写的不好的,大家都可以帮我提出来。我跟着pink老师学的!!!强烈推荐:https://www.bilibili.com/video/BV14J4114768p=1&vd_source=38cea56ff3dcca4556d2d0f0f2c18c0c1,类型转换:把一种数据类型的变量转换成......
  • 前端学习笔记——JavaScript基础语言的学习(二)
    作者简介:大家好,本人刚专升本上岸,是个前端小菜鸟。每日都会虚心的学习。有什么写的不好的,大家都可以帮我提出来。我跟着pink老师学的!!!强烈推荐:https://www.bilibili.com/video/BV14J4114768p=1&vd_source=38cea56ff3dcca4556d2d0f0f2c18c0c1.数组的基本使用2.常量的基本使用......
  • 【Mac】关于Mac的github配置和本地项目上传
    目录前言什么是github?有什么用?github个人账户创建Mac的git环境配置生成密钥将密钥添加到github创建github仓库将本地文件上传至github仓库一些常用的git命令总结前言  本文主要介绍了Mac的git环境配置,github仓库的创建,本地文件上传到github仓库以及常用的git命......