当前端导入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时间的问题的更多相关文章

  1. web api 如何通过接收文件流的方式,接收客户端及前端上传的文件

    服务端接收文件流代码: public async Task<HttpResponseMessage> ReceiveFileByStream() { var stream = HttpCo ...

  2. 前端上传组件Plupload使用指南

    我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...

  3. 【转】前端上传组件Plupload

    [转自博客园-无双] html5原生的给我们提供了文件上传的API,Plupload是一款由著名的web编辑器TinyMCE团队开发的上传组件,简单易用且功能强大,我们完全可以使用Plupload来代 ...

  4. 【转】前端上传组件Plupload使用指南

    http://www.cnblogs.com/2050/p/3913184.html Plupload有以下功能和特点: 1.拥有多种上传方式:HTML5.flash.silverlight以及传统的 ...

  5. [Pulgin] 前端上传组件Plupload使用指南

    我之前写过一篇文章<文件上传利器SWFUpload使用指南>,里面介绍了上传组件SWFUpload的使用方法,但现在随着html5技术的逐渐推广和普及,再去使用以flash为上传手段的SW ...

  6. 前端上传视频、图片、文件等大文件 组件Plupload使用指南

    demo:https://blog.csdn.net/qq_30100043/article/details/78491993 Plupload上传插件中文帮助文档网址:http://www.phpi ...

  7. H5前端上传文件的几个解决方案

    目前,几个项目中用到了不同的方法,总结一下分享出来. 第一种,通过FormData来实现. 首先,添加input控件file. <input type="file" name ...

  8. VUE-利用OSS BrowserJS-SDK实现阿里OSS前端上传

    项目中遇到利用阿里OSS上传文件,线上很多示例用到了各种SDK,却没有看到OSS BrowserJS-SDK相关示例,鉴于脑子不好使,记一下. 封装upload相关组件  使用npm安装SDK的开发 ...

  9. 前端上传 base64 编码图片到七牛云存储

    参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...

  10. django-form.errors和前端上传文件

    一.上传文件: 在相应的模型里面定义`FileField`或者是`ImageField`类型的字段,并且1.设置好`upload_to`参数来指定上传的路径. class User(models.Mo ...

随机推荐

  1. 【FAQ】HarmonyOS SDK 闭源开放能力 —IAP Kit(3)

    1.问题描述: 已经购买订阅型物品,未调用finishPurchase接口, 重新购买该物品,createPurchase接口返回的是001860001错误:System internal error ...

  2. 使用netsh命令行进行网络管理

    显示网络适配器状态 netsh interface show interface 显示各个网络适配器的名称和状态 启用(禁用)网络适配器 本系列命令需要以"以管理员身份运行". 禁 ...

  3. lnmp状态监控自动重启服务脚本sh

    #!/bin/bash ###获取当前时间 time="$(date +"%Y%m%d-%H:%M")" ###查看fpm服务是否运行 i=`netstat - ...

  4. pdf.js使用

    百度上很多例子,都是构建之前的! 我们使用pdf.js,最终只需要构建后的内容,大家可以通过这里进行下载: https://pan.baidu.com/s/14J-m-jeHdvn46cPhPXk54 ...

  5. PostgreSQL中将对象oid和对象名相互转换

    PostgreSQL中将对象oid转为对象名 使用pg的内部数据类型将对象oid转为对象名,可以简化一些系统视图的关联查询. 数据库类型转换对应类型的oid 可以用以下数据库类型转换对应类型的oid( ...

  6. Java反射调用get/set方法,你还在这样用?

    之前有些场景下碰到需要用到反射调用JavaBean的get/set方法时都是像以下这种拼接的方式来实现方法的调用. Article article = new Article(); article.s ...

  7. ARC134C The Majority

    ARC134C The Majority link:[ARC134C] The Majority 小清新数学题.(反正我做不出来) 简要题意 有\(K\)个箱子,编号为\(1\)到\(K\)的箱子.起 ...

  8. Python prometheus_client使用方式

    #!/usr/bin/env python # -*- coding: utf8 -*- import socket,re from prometheus_client import generate ...

  9. 我的neovim配置

    init.vim " Vim with all enhancements "文件管理器,我想试一下ranger syntax enable syntax on let maplea ...

  10. MySQL8.0之特性

    MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能.下面我们将简要介绍下 MySQL 8.0 中值得关注的 ...