如何把时间戳格式和日期格式相互转换

往往在页面中批量导入一些员工信息类,会有传入excel表格,进行解析拿到对应数据,渲染,但其中得到的数据并不是我们所期待的可以通过以下的公式来进行数据的转化

Excel中时间戳转换公式及原理

这个公式的原理:Excel的日期实际上是序列值,它以1900-1-1为1,且从北京时间8点开始,每过一天序列值加1,。而Unix时间戳是从1970-1-1 00:00:00 UTC开始到现在经过的秒数。用X表示时间戳,可得到换算公式:

X+8*3600当前时区的时间(秒),北京时间+8小时
(X+8*3600)/86400转换单位为天,一天为86400秒
(X+8*3600)/86400+70*365加上1900到1970这七十年
(X+8*3600)/86400+70*365+19加上闰年多出来的天数19天

1、时间戳转换成正常日期的公式:

B2=(A2+8*3600)/86400+70*365+19

2、正常日期转换为时间戳格式的公式:

C2=(B2-70*365-19)*86400-8*3600

其中,B2为正常日期时间的表格,C2为所需时间戳格式的表格

具体项目中封装的方法如下:

changeDate(num) {
      // 先将excel中读取到的时间转化为时间戳
      const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      // 将时间减少70年(不确定闰年与否,采用setYear方法)
      t.setYear(t.getFullYear() - 70)
      return t
    }

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值