前端解析excel后时间会变成一堆数字例如下图。但是我表格数据是这样的
网上搜索没有很精确到时分秒的我这个可以精确到时分秒转换。Vue3 语法糖写法。处理完数据后
const getExcelTime = (timeNumber: any) => {
let addDate = (m: any) => m < 10 ? '0' + m : m;
let getDateXlsx = getFormatDateXlsx(timeNumber);
let YYYY = getDateXlsx.getFullYear();
let MM = addDate(getDateXlsx.getMonth() + 1);
let DD = addDate(getDateXlsx.getDate());
let hh = addDate(getDateXlsx.getHours());
let mm = addDate(getDateXlsx.getMinutes());
let ss = addDate(getDateXlsx.getSeconds());
return `${YYYY}-${MM}-${DD} ${hh}:${mm}:${ss}`;
}
const getFormatDateXlsx = (timeNumber: any) => {
let utcDays = Math.floor(timeNumber - 25569);
let utcValue = utcDays * 86400;
let dateInfo = new Date(utcValue * 1000);
let fractionalDay = timeNumber - Math.floor(timeNumber) + 0.0000001;
let totalSeconds = Math.floor(86400 * fractionalDay);
let seconds = totalSeconds % 60;
totalSeconds -= seconds;
let hours = Math.floor(totalSeconds / (60 * 60));
let minutes = Math.floor(totalSeconds / 60) % 60;
let DateTime = new Date(dateInfo.getFullYear(), dateInfo.getMonth(), dateInfo.getDate(), hours, minutes, seconds);
return DateTime;
}
如下图时间就跟excel表格的时间一致了。
具体调用方法getExcelTime('参数')