static clearLog(){
let list = fs.listFileSync(Logger.logDirPath)
console.log(`日志目录子文件 ${list}`)
let toDelLogFile: string[] = []
list.forEach((item)=> {
let logDateStr: string = item.split('.')[0]
const today = new Date();
let dateElements: string[] = logDateStr.split('_')
let formatDateStr = dateElements.join('-')
// 使用正则表达式或其他方法解析字符串
let dateObject = new Date(formatDateStr);
// 计算两个日期之间的差值(以毫秒为单位)
const timeDifference = today.getTime() - dateObject.getTime();
// 将差值转换为天数、小时数、分钟数和秒数
const seconds = Math.floor(timeDifference / 1000); // 总秒数
const minutes = Math.floor(seconds / 60); // 总分钟数
const hours = Math.floor(minutes / 60); // 总小时数
const days = Math.floor(hours / 24); // 总天数
if (days > 5) {
toDelLogFile.push(item)
}
})
let tmpList: string[]
tmpList = toDelLogFile.map<string>((subFile)=>{
return `${Logger.logDirPath}/${subFile}`
})
tmpList.forEach((item)=>{
ZipUpload.deleteFile(item)
})
}
关键代码一: 把一个系统日期类不认识的字符串转成系统日期类可以直接解析成日期类的
如 2025_03_03转成2025-03-03,在生成日期类对象
let dateElements: string[] = logDateStr.split('_')
let formatDateStr = dateElements.join('-')
// 使用正则表达式或其他方法解析字符串
let dateObject = new Date(formatDateStr);
关键代码二:获取传入的日期与当前日期的差值,进行相应的逻辑处理
// 计算两个日期之间的差值(以毫秒为单位)
const timeDifference = today.getTime() - dateObject.getTime();
// 将差值转换为天数、小时数、分钟数和秒数
const seconds = Math.floor(timeDifference / 1000); // 总秒数
const minutes = Math.floor(seconds / 60); // 总分钟数
const hours = Math.floor(minutes / 60); // 总小时数
const days = Math.floor(hours / 24); // 总天数
if (days > 5) {
toDelLogFile.push(item)
}