js读取excel中日期格式转换问题

2023-05-16

方法一、

在使用js-xlsx插件来读取excel时,会将2018/10/16这种数据自动装换成48264.12584511.

所以需要自己手动再转换回来

// excel读取2018/01/01这种时间格式是会将它装换成数字类似于46254.1545151415 numb是传过来的整数数字,format是之间间隔的符号

1.方法①: 

    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 + ''
      if (format && format.length === 1) {
        return year + format + month + format + date
      }
      return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
    },
  console.log(formatDate(42618, '/')) // 2016-9-5

2. 方法②:

//excel日期格式转换 numb为数字,format为拼接符“-”
    function formatDate(numb, format) {
        // 1. 第一种写法
        if (numb != undefined) {
            let time = new Date((numb - 1) * 24 * 3600000 + 1)
            time.setYear(time.getFullYear() - 70)
            let year = time.getFullYear() + ''
            let month = time.getMonth() + 1 + ''
            let date = time.getDate() + ''
            if (format && format.length === 1) {
                return year + format + month + format + date
            }
            return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
        } else {
            return undefined;
        }

        // 2.  第二种写法
        let  time = new Date( (numb - 25567) * 24 * 3600000  - 
            5 * 60 * 1000 -
            43 * 1000 - 
            24 * 3600000 - 8 * 3600000 );

        let year = time.getFullYear() + ''
        let month = time.getMonth() + 1 + ''
        let date = time.getDate() + ''
        if (format && format.length === 1) {
           return year + format + month + format + date
        }
        return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)

    }

方法二、时分秒转换:

function formatTime(numb, format) {
            var hourTmp = numb * 24;
            var hour = Math.floor(hourTmp);
            var minuteTmp = hourTmp - hour;
            var minute = Math.round(minuteTmp * 60);
            return (hour < 10 ? '0' + hour : hour) + format + (minute < 10 ? '0' + minute : minute);
}

方法三、Js如何将一串数字转换为时间格式yyyy-MM-dd hh:mm:ss

var time='20190306214635'
time.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/g, '$1-$2-$3 $4:$5:$6');

输出 

2019-03-06 21:46:35

方法四、

今天写了一个ajax请求,当获取对象中的某个日期属性时,发现打印出来是一串数字,例如:1394786876000。可能有人会有疑问了,明明是日期格式,为什么不返回日期,而返回一串数字呢?其实这串数字是个时间戳,也就是从格林威治时间1970年01月01日00时00分00秒起至返回的那个日期的总秒数。如何将时间戳转化为我们需要的格式呢。

在此只介绍一种简单的方法,也是我从网上找来的:

1、在js中先加载一下代码,不需要做任何修改

Date.prototype.format =function(format)
  {
  var o = {
  "M+" : this.getMonth()+1, //month
  "d+" : this.getDate(), //day
  "h+" : this.getHours(), //hour
  "m+" : this.getMinutes(), //minute
  "s+" : this.getSeconds(), //second
  "q+" : Math.floor((this.getMonth()+3)/3), //quarter
  "S" : this.getMilliseconds() //millisecond
  }
  if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
  (this.getFullYear()+"").substr(4- RegExp.$1.length));
  for(var k in o)if(new RegExp("("+ k +")").test(format))
  format = format.replace(RegExp.$1,
  RegExp.$1.length==1? o[k] :
  ("00"+ o[k]).substr((""+ o[k]).length));
  return format;
  }

2、使用new Date(时间戳).format('yyyy-MM-dd')方法进行转化即可,返回的就是yyyy-MM-dd格式的值。

最后为了方便大家的沟通与交流请加QQ群: 625787746

请进QQ群交流:【IT博客技术分享群①】:正在跳转

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js读取excel中日期格式转换问题 的相关文章

  • 是否有任何公式可用于将特定单元格复制指定次数?

    目前我正在处理一份数据 其中我有一个公司名称列表 例如 1 A 2 B 3 C 还有很多 需要的结果是 1 A 2 A 3 A 4 A 5 A 6 B 7 B 8 B 9 B 10 B 11 C 12 C 13 C 14 C 15 C 等等
  • 从嵌入的谷歌地图中提取标记坐标

    对此还很陌生 所以请耐心等待 我需要从嵌入的谷歌地图中提取标记坐标 示例链接是http www picknpay co za store search http www picknpay co za store search我想提取搜索时地
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • alasql 需要已包含的 xlsx

    我正在尝试使用将数据导出到 Excel 工作表alasql and xlsx 我已遵循此处的所有准则 https github com agershun alasql wiki Xlsx https github com agershun
  • 如何从另一个 Excel 实例引用工作簿

    我相信我的问题相当简单 我有一个工作簿 我正在使用它从另一个软件 SAP 获取一些数据 当我从软件导出数据时 它会自动打开一个 xlsx 文件 然后我需要做的是从该文件复制一些数据 粘贴到我的原始工作簿上 然后关闭该文件 我的代码中给我带来
  • Excel 中使用通配符 {*} 进行 Vlookup

    我有下表 现在 我想检查主题是否具有数据中存在的任何文本 col F I used VLOOKUP A2 F F 1 0 但它正在给予 N A Try 公式为B2 SUM COUNTIF A2 F 2 F 3 gt 0 Edit SUM C
  • 如何暂停特定时间? (Excel/VBA)

    我有一个 Excel 工作表 其中包含以下宏 我想每秒循环一次 但如果我能找到执行此操作的函数 那就很危险了 难道不可能吗 Sub Macro1 Macro1 Macro Do Calculate Here I want to wait f
  • Excel VBA 用户窗体 - 当发生变化时执行 Sub

    我有一个包含很多文本框的用户表单 当这些文本框的值发生变化时 我需要通过调用子例程 AutoCalc 根据文本框值重新计算最终结果值 我有大约 25 个框 我不想向每个调用上述子例程的文本框单独添加 Change 事件 当某些值发生变化时调
  • 从VBA中的数组批量插入到sql中

    我正在尝试在 Excel 中构建一个按钮 将所选区域上传到 SQL Server 中的表中 第一行将自动视为列标题 这件事该怎么继续下去呢 我想要的是简单和超快的上传 这是我的想法 我将选择选定的区域 然后将其保存为 txt 文件 然后对其
  • 如何VBA等待Windows保存对话框和发送密钥

    我正在创建一个宏文件 用于下载并保存从 SAP 旧版本 7 20 中提取的数据 当出现保存对话框时 未检测到 Windows 对话框 因为我的客户端 SAP 版本是旧版本 7 20 现在我对此的解决方案是发送密钥 但问题是某些数据包含大量数
  • 如何获取 pandas 数据框并覆盖 Excel 工作簿中的特定工作表

    我想获取一个数据框并让它替换特定工作表中的现有数据 假设为sheet1 然后我想获取另一个数据框并将其附加到另一张工作表上的数据 比如说同一工作簿中的sheet2 目前 我必须将数据写入新的 Excel 工作簿 我无法在线找到如何实际替换我
  • 从单元格中具有多种颜色的单元格中提取字体颜色

    我有一个 Excel 工作表 我正在尝试将其存入 MySQL 数据库 我使用 VBA 将数据作为文本写入文件 然后将其上传到数据库 在工作表的单元格中 有一些已用颜色编码的字符串 颜色具有一定的含义 因此当我将值移入数据库时 我想保留它们
  • 我可以通过 vba 设置 Excel Power Query 的用户名和密码吗?

    我正在尝试设置一个电子表格 供其他人使用 通过 Power Query 更新表 当另一个用户使用电子表格时 他们会被要求 3 次输入用户名和密码 因为我有 3 个表正在更新 如何通过 VBA 为每个用户设置这些 我尝试将连接设置为匿名 但他
  • 在 VBA 中从范围创建数组

    我遇到了一个看似基本的问题 但找不到任何资源来解决它 简而言之 我只想将一系列单元格 所有一列 的内容加载到数组中 我能够通过以下方式完成此任务 DirArray Array Range A1 Range A2 但由于某种原因 我无法以这种
  • 在 Excel VBA 中,如何访问存储在已安装的加载项中的子项?

    我已经创建了一个 Excel 加载项 该加载项中有一些模块 假设 module1 是其中之一 在 module1 中 我有一个 sub 声明为 public sub abc end sub 在我的工作簿中 我希望能够使用外接程序中定义的函数
  • excel vba 中的智能卡和 ISO 7816 入门 ( SCardEstablishContext )

    我刚刚收到了标准的便宜货USB 智能卡读卡器 http stanleyglobaltech com sgt111 html 我正在尝试找出如何使用 Excel 中的 VBA 与其进行交互 我在尝试在工作簿中创建基本智能卡功能时编写了此内容
  • openpyxl 2.4.2:保存后公式生成的单元格值为空

    我使用 openpyxl 打开文件 编辑一些单元格并保存更改 这是一个例子 import openpyxl book openpyxl load workbook sheet path sheet book active for row i
  • 如何连接以逗号分隔的命名范围的返回值

    我花了几个小时试图找出如何连接命名范围中的返回值 但结果是 运行时错误 32 类型不匹配 作为一个新手 我仍在与数组作斗争 所以也许我忽略了一些细节 谢谢你帮助我 示例 B1 苯 B2 柴油 B3 混合动力 gt E1 汽油 E2 柴油 E
  • Excel工作表中的动态减法公式

    我需要在Excel中编写一个动态减法公式 该公式从其上方的单元格中减去 指定列的 单元格 例如 A2 A1 G1 G列固定 and A3 A2 G2 and A4 A3 G3 等等 Excel 足够智能 可以使用动态引用和对当前单元格的相对
  • 运行时错误“13”:IF 与 OR 语句组合的类型不匹配

    在我使用 Excel 的 VBA 代码中 Dim Field2 As String Field2 Cells i 4 Value If Right Field2 3 A 1 Or A 2 Or B 1 Or B 2 Or C 1 Or C

随机推荐

  • 关于module.export的用法

    关于module export的用法 module exports 对象是由模块系统创建的 在我们自己写模块的时候 xff0c 需要在模块最后写好模块接口 xff0c 声明这个模块对外暴露什么内容 xff0c module exports
  • VNC之免交互式设置用户登录密码

    VNC之免交互式设置用户登录密码 由于有几十台机器 xff0c 每台机器需要配置4个VNC账号 xff0c 手动配置太费劲了 xff0c 这里使用免交互式配置密码 xff0c 可以将其改在脚本中 xff0c 减少配置时间 方法一 span
  • iscsi开机自动挂载和认证配置

    iscsi开机挂载和认证配置 iscsi 开机自启 span class token comment xff1a 发现iscsi设备 span span class token punctuation span root 64 localh
  • Linux 修改apt-get为国内镜像源

    查看apt get配置文件 cat etc apt sources list 源文件备份 sudo cp etc apt sources list etc apt sources list bak 清空配置文件 echo 34 34 gt
  • 为什么数组下标是从0开始?可能原因

    也不是所有的高级程序语言都是如此 xff0c 比如Python数组下标就支持负数 原因一 xff1a 历史原因 语言出现顺序从早到晚C Java JavaScript C语言数组下标是从0开始 gt Java也是 gt JavaScript
  • 离线部署docker配置文件

    systemd config cat gt usr lib systemd system docker service lt lt EOF Unit Description 61 Docker Application Container E
  • layui.use里面定义的方法外面怎么调用

    前言 xff1a layui use里面定义的方法外面怎么调用 解决办法 xff1a 方法内部加window 加了window后 可以被外部引用 window uploadData 61 function 源码 xff1a layui us
  • Hadoop(四)HDFS 读写流程

    HDFS 的读写流程 HDFS 将文件切割为默认大小的块 xff08 block xff09 存放在不同的 DataNode上 xff1b 上传文件和读取文件是 HDFS 重要的流程 xff1b HDFS 的写文件流程 图文解释 xff1a
  • cocos2dx3.x中Opacity和visible

    当我们需要场景中的某个精灵不可见时可能会面临两种选择 xff0c 特别地 xff0c 我们可能经常使用Fadein和Fadeout表示淡入淡出的特效 xff0c 而当我调用Fadeout淡出精灵时 xff0c 其实本质上是在对精灵的Opac
  • NLPcc2013-2014微博文本情感分类数据集

    从xml中提取的 xff0c 文件格式为tsv xff0c 和csv差不多 可以转为其他格式 链接 xff1a https pan baidu com s 1lDiuvpbT5qPc uJJs0cPUQ 提取码 xff1a t5i7 spa
  • java面试题2019 自己总结的面试题 javaspring springboot cloud面试题

    java面试题 这些面试题是我搜集的一些和自己之前在面试当中积攒的面试题 有不对的地方 请多指教 讲讲App接口对接 zookeeper 在微服务 xff0c 处于什么角色 xff1f 脏读是什么 xff1f 脏读是读到了别的事务回滚前的脏
  • 解决js、css缓存问题

    对于线上的项目 xff0c 会经常改动 xff0c 并重新发布 xff0c 但是会发现它一些css js并没有实时更新 xff0c 而是使用缓存中的 所以解决方式可以有 xff1a 在引入时 xff0c 给更新频繁的js或css文件加入版本
  • 文献阅读 DeepReflect: Discovering Malicious Functionality through Binary Reconstruction

    其他可参考链接 xff1a DeepReflect xff1a 通过二进制重构标识具体恶意行为 知乎 论文阅读 20 USENIXSec21 DeepReflect xff1a 通过二进制重构发现恶意行为 xff08 恶意代码ROI分析经典
  • 检测恶意软件分类模型中的概念漂移

    科研笔记 论文题目 检测恶意软件分类模型中的概念漂移 共形预测 conformal prediction 是一种置信度预测器 xff0c 它生成具有用户定义的错误率的预测 在某个置信度水平下 xff0c 所有预测范围的那部分将包括正确的标签
  • 如何在 Ubuntu 和相关发行版中安装 Python 3.11

    如何在 Ubuntu 等 Linux 中安装 Python 3 11 Linux 中国 python linux ubuntu sudo debugpoint 软件包 网易订阅 如何在 Ubuntu 和相关发行版中安装 Python 3 1
  • 挡板测试

    挡板测试其实是MOCK程序的一种 xff0c 用于超大型项目 就是仅提供一个或者几个功能测试的沙盒beta 版本 首先 xff0c 挡板测试在测试领域提到的不是很普遍 挡板测试大概就是 xff1a 在一些跨系统的性能测试项目中 xff0c
  • Error: pg_config executable not found

    解决方案 xff1a 1 安装libpq dev sudo apt get install libpq dev 2 安装python dev sudo apt get install python dev 3 安装psycog2 usr b
  • 深度学习——正则化

    转自https www cnblogs com oto G p 15844581 html 全是自我理解 xff0c 表达不严谨 xff0c 仅供参考 本文默认正则化范数为L1范数 这是今天讨论的问题 xff1a 为什么融入正则的损失函数能
  • 利用深度学习检测恶意代码

    1 引言 当前 xff0c 恶意软件的检测已经成为全社会关注的网络安全焦点 xff0c 因为许多时候 xff0c 单个恶意软件就足以导致数百万美元的损失 目前的反病毒和恶意软件检测产品 xff0c 一般采用的是基于特征的方法 xff0c 它
  • js读取excel中日期格式转换问题

    方法一 在使用js xlsx插件来读取excel时 会将2018 10 16这种数据自动装换成48264 12584511 所以需要自己手动再转换回来 excel读取2018 01 01这种时间格式是会将它装换成数字类似于46254 154