js从Excel拿到日期是一个浮点小数,时间格式问题怎么转换为时间戳?

背景

js从excel中拿到的时间是一个浮点的天数,时间是1900-01-01开始到现在的天数

解决思路

  1. 首先我们需要处理时区的问题,getTimezoneOffset()得到距离UTC的分钟时间差
  2. 然后将时间转换为毫秒级时间戳,传入new Date()中,初始化对象
  3. 由于时间戳开始时间是1970-01-01,所以getFullYear()要减去70年,得到UTC年份
  4. 毫秒转换为时间戳除以1000即可得到,然后对其取整。

js代码实例

let value = 4564;
value = value + (new Date()).getTimezoneOffset() / 60 / 24;
let date = new Date((value - 1) * 24 * 3600000 + 1);
date.setUTCFullYear(date.getFullYear() - 70);
return parseInt('' + date.getTime() / 1000);

0 comments

To reply to the article, please Login or registered