0.背景
一个excel,需要前台解析成json格式,然后插入数据库。其他的一切正常,唯独时间的列被解析5位数字,然后插入数据库也变成了5位数字。
1.解决办法
提供两个解决办法。
办法一:
把excel单元格格式设置成文本格式,然后解析的时候就会被当成普通文本进行解析。
方法二:
如果单元格格式是日期格式,我们可以采用以下函数进行解析。
formatExcelTime(num, format = '-') { num = Number(num); // 强制类型转化,以防传来的值是字符串 let millisecond = 0; // 转化后的毫秒数 if (num > 60) { millisecond = (num - 25569) * 60 * 60 * 24 * 1000; } else { millisecond = (num - 25568) * 60 * 60 * 24 * 1000; } let date = new Date(millisecond); // 根据转化后的毫秒数获取对应的时间 let yy = date.getFullYear(); let mm = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; let dd = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); return yy + format + mm + format + dd; // 返回格式化后的日期 }
这样,我们给它传入一个5位数字,它就能解析出合适的日期了。