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

当前端导入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 // 返回格式化后的日期
}
原创出处
关于前端上传excell时间的问题的更多相关文章
- web api 如何通过接收文件流的方式,接收客户端及前端上传的文件
服务端接收文件流代码: public async Task<HttpResponseMessage> ReceiveFileByStream() { var stream = HttpCo ...
- 前端上传组件Plupload使用指南
我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...
- 【转】前端上传组件Plupload
[转自博客园-无双] html5原生的给我们提供了文件上传的API,Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代 ...
- 【转】前端上传组件Plupload使用指南
http://www.cnblogs.com/2050/p/3913184.html Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的 ...
- [Pulgin] 前端上传组件Plupload使用指南
我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...
- 前端上传视频、图片、文件等大文件 组件Plupload使用指南
demo:https://blog.csdn.net/qq_30100043/article/details/78491993 Plupload上传插件中文帮助文档网址:http://www.phpi ...
- H5前端上传文件的几个解决方案
目前,几个项目中用到了不同的方法,总结一下分享出来. 第一种,通过FormData来实现. 首先,添加input控件file. <input type="file" name ...
- VUE-利用OSS BrowserJS-SDK实现阿里OSS前端上传
项目中遇到利用阿里OSS上传文件,线上很多示例用到了各种SDK,却没有看到OSS BrowserJS-SDK相关示例,鉴于脑子不好使,记一下. 封装upload相关组件  使用npm安装SDK的开发 ...
- 前端上传 base64 编码图片到七牛云存储
参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...
- django-form.errors和前端上传文件
一.上传文件: 在相应的模型里面定义`FileField`或者是`ImageField`类型的字段,并且1.设置好`upload_to`参数来指定上传的路径. class User(models.Mo ...
随机推荐
- springboot-实现excle文件导出的单元格相同内容合并
导出excle文件中的单元格有些需要合并如何操作 例如:左边的表格想合并单元格成右边的表格更加便于观看 一.依赖文件 <!-- excle操作--> <depen ...
- 物理实验霍尔效应判断P/N型半导体笔记
最近这不要物理实验期末考试了嘛,我火速抄起实验书准备复习. 复习到霍尔效应判断P/N型半导体这一部分时很惊奇地发现网上一会儿还搜不出个明了的总结,也有很多误导性的判断方法.Σ( ° △ °|||)︴ ...
- WebUploader 文件上传,兼容ios和安卓
var upImg = WebUploader.create({ auto: true, swf: 'webuploader-0.1.5/Uploader.swf', // 图片接收服务端. serv ...
- awk优化钉钉通知测试报告
一.背景 在之前的博客 Go服务自动触发单元测试覆盖率 中钉钉通知的效果实现如下图: 最近RD提出对本次和上次覆盖率的比对需求,并把比对结果也显示在钉钉通知上. 二.实现思路 要实现数据比对,就需要对 ...
- 微信小程序目录结构
一.小程序框架 微信开放平台--小程序框架介绍 小程序的目录结构很清晰,主要由描述整体内容的app和描述具体页面的page组成.一般来说,习惯对小程序的目录结构进行更加清晰的规划,例如将程序种会用到的 ...
- 低功耗4G模组:LCD应用示例
今天我们学习合宙Air780E开发板LCD应用示例,文末[阅读原文]获取最新资料. 本文档适用于Air780E开发板 关联文档和使用工具 lcd-demo: https://gitee.com/o ...
- 李继刚Lisp提示词灵感之源:压缩推动进步
前面在文章< 访谈李继刚:从哲学层面与大模型对话 >中提到,继刚总结去年写提示词的核心理念是"清晰表达",而今年则是"压缩表达",既而才有火爆全网的 ...
- 国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 一、比对方法和结果
最近调研了三款国产化数据库与mysql做对比,调研主要性能指标是大数据写入速度.大数据读取速度以及是否支持分表. 一.测试结果 测试结果与预期的差别很大 1.先说oceanBase社区版这款数 ...
- How to disable ipv6 in ubuntu
To disable ipv6, you have to open /etc/sysctl.conf using any text editor and insert the following li ...
- 5. Spring Cloud OpenFeign 声明式 WebService 客户端的超详细使用
5. Spring Cloud OpenFeign 声明式 WebService 客户端的超详细使用 @ 目录 5. Spring Cloud OpenFeign 声明式 WebService 客户端 ...