VUE中xslx解析excel日期格式问题
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
1.第一种方法
配置的readerData方法中const workbook = XLSX.read(data, { type: ‘array’ })
当excel上传日期时获取的为字符串,例如:excel文件中日期为2023/5/23,拿到的数据为45069
在导入数据前对数据做yyyy-MM-dd处理
/** 导入数据部分过滤器 */
importFilter(batchSaveData){
//这里执行需要过滤的信息
for(var i=0;i<batchSaveData.length;i++){
if( batchSaveData[i].buyDate){
try {
batchSaveData[i].buyDate = this.formDate(batchSaveData[i].buyDate);
console.log(batchSaveData[i].buyDate);
} catch (error) {
throw new Error("时间格式错误");
}
}
}
return batchSaveData;
},
formDate(date){
// 将Excel日期转换为JavaScript日期
const jsDate = new Date((date - 25569) * 86400 * 1000);
// 将JavaScript日期转换为指定格式:yyyy-MM-dd
const year = jsDate.getFullYear();
const month = String(jsDate.getMonth() + 1).padStart(2, '0');
const day = String(jsDate.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
1.第二种方法
配置的readerData方法中配置cellDates: true, dateNF: “yyyy-MM-dd HH:mm”,可处理时间格式
const workbook = XLSX.read(data, { type: 'array', cellDates: true, dateNF: "yyyy-MM-dd HH:mm" })
获取的日期:Mon May 22 2023 23:59:17 GMT+0800
但获取的格式少43秒,存入数据库中会少一天
处理方法:获取的日期+44秒
const timestamp = batchSaveData[i].buyDate.getTime() + (44 * 1000);
batchSaveData[i].buyDate = new Date(timestamp);
/** 导入数据部分过滤器 */
importFilter(batchSaveData){
//这里执行需要过滤的信息
for(var i=0;i<batchSaveData.length;i++){
if( batchSaveData[i].buyDate){
try {
console.log(batchSaveData[i].buyDate);
const timestamp = batchSaveData[i].buyDate.getTime() + (44 * 1000);
batchSaveData[i].buyDate = new Date(timestamp);
batchSaveData[i].buyDate = this.parseTime(batchSaveData[i].buyDate,"{y}-{m}-{d}");
// batchSaveData[i].buyDate = this.formDate(batchSaveData[i].buyDate);
console.log(batchSaveData[i].buyDate);
} catch (error) {
throw new Error("时间格式错误");
}
}
}
return batchSaveData;
},
GitHub 加速计划 / vu / vue
83
16
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:5 个月前 )
9e887079
[skip ci] 3 个月前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 7 个月前
更多推荐
已为社区贡献6条内容
所有评论(0)