获取里面的小时、天数、分钟数 等等信息
定义数据截取的格式(使用正则表达式)
regex = /(\d{2})\d{2})\d{2}).(\d+)/;
问题来了 正则表达式只截取固定位数的数据来作为不同的数据的区分
那么如果时间在一个小时以内 、一天以内的数据应该如何处理呢?
比如数据有这两种
00:57:28.8377329
12.00:57:28.8377329
上面的是不超过一天的数据
下面的是超过一天的
他们的长度分别是16和18
那么通过
if (response.data.accumulatedRunTime.length > 16) 来区分 以匹配不同的正则表达式
const matches = response.data.accumulatedRunTime.match(regex);
里面的不同下标存储着不同的信息 直接取用即可
如果直接取用可能会发生错位
使用反向的数组下标
const hours = parseInt(matches[matches.length - 4]);
const minutes = parseInt(matches[matches.length - 3]);
const seconds = parseInt(matches[matches.length - 2]);
getRunningTimeData().then((response) => {
console.log(response.data.accumulatedRunTime.length)
let regex = null
let days = null
if (response.data.accumulatedRunTime.length > 16) { // 超过一天的格式
regex = /(\d{1}).(\d{2}):(\d{2}):(\d{2})\.(\d+)/;
} else {
regex = /(\d{2}):(\d{2}):(\d{2})\.(\d+)/;
}
const matches = response.data.accumulatedRunTime.match(regex);
console.log(response.data.accumulatedRunTime.match(regex))
// 提取匹配的值
if (response.data.accumulatedRunTime.length > 16) { // 超过一天的格式
days = parseInt(matches[matches.length - 5]);
} else {
days = 0
}
const hours = parseInt(matches[matches.length - 4]);
const minutes = parseInt(matches[matches.length - 3]);
const seconds = parseInt(matches[matches.length - 2]);
if (data.value.effectiverunningTime != response.data.accumulatedRunTime) {
time.value = `${days}天${hours}小时${minutes}分钟${seconds}秒`
}
});
}