我们在excel表格上传的时候,会出现以下问题:
1.我们要导入的excel表格数据是这个格式
2.然而导入之后,得到的数据格式变成了这样
这显然不符合我们的要求,并不是我们想要的日期数据格式。
原因:
因为从excel 导入日期会自动转换成一个数字(number格式) 这个数字是减掉1900年1月0日的天数后得到的
- 例如 25569就是 1970-01-01
但是后端通常需要的是标准的时间格式,这是我们需要进行数据格式处理。
解决方法:
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)
}
只需要封装并调用上面的函数,把要处理的时间编码当做参数传进去就行了。