如何把excel里面的日期时间转换为标准时间格式

674 阅读1分钟

我们在excel表格上传的时候,会出现以下问题:

1.我们要导入的excel表格数据是这个格式

1.png

2.然而导入之后,得到的数据格式变成了这样

2.png

3.png

这显然不符合我们的要求,并不是我们想要的日期数据格式。

原因:

因为从excel 导入日期会自动转换成一个数字(number格式)  这个数字是减掉1900年1月0日的天数后得到的

  • 例如 25569就是 1970-01-01

4.png 但是后端通常需要的是标准的时间格式,这是我们需要进行数据格式处理。

解决方法:

export function formatExcelDate(numb, format = '/') {
  const time = new Date((numb - 25567) * 24 * 3600000 - 5 * 60 * 1000 - 43 * 1000 - 24 * 3600000 - 8 * 3600000)
  time.setYear(time.getFullYear())
  const year = time.getFullYear() + ''
  const month = time.getMonth() + 1 + ''
  const date = time.getDate() + ''
  if (format && format.length === 1) {
    return year + format + (month < 10 ? '0' + month : month) + format + (date < 10 ? '0' + date : date)
  }
  return year + (month < 10 ? '0' + month : month) + (date < 10 ? '0' + date : date)
}

只需要封装并调用上面的函数,把要处理的时间编码当做参数传进去就行了。

效果

5.png