如何获取时间段内所有符合条件的数据?
现有两个查询条件,其中一个是日期时间。
ui
<el-form :inline="true" :model="formInline"> <el-form-item label="工位号" style="font-weight: bold">
<el-select v-model="formInline.value" placeholder="请选择工位">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="起始时间-截止时间" style="font-weight: bold">
<el-date-picker
v-model="formInline.value1"
type="datetimerange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="search(formInline)">查询</el-button>
</el-form-item>
</el-form>
// search点击事件 search (val) {
console.log('输入值', val)
const datetime01 = this.toDate(val.value1[0]).date + ' ' + this.toDate(val.value1[0]).time
const datetime02 = this.toDate(val.value1[1]).date + ' ' + this.toDate(val.value1[1]).time
console.log(datetime01, '处理好的语义化时间', datetime02)
const data = this.allData
console.log(data, '所有数据')
if (val.value === '') {
this.$message.error('请选择想要查询的工位!')
return
}
if (val.value1[0] === '') {
this.$message.error('请输入起始时间!')
return
}
if (val.value1[1] === '') {
this.$message.error('请输入截止时间!')
return
}
if (val.value && val.value1[0] && val.value1[1]) {
/**
* 循环遍历出 符合条件的数组数据
* 工位process_no 时间do_time
* 将日期内的所有数据匹配出来
*
* 先过滤出所有符合工站位的数据,再匹配出时间段内的数据
*/
const match = data.filter(item => (item.process_no = val.value))
console.log(match, '匹配上的工位')
}
this.getAllData()
},
回答:
//... 之前的代码 ...if (val.value && val.value1[0] && val.value1[1]) {
/**
* 循环遍历出 符合条件的数组数据
* 工位process_no 时间do_time
* 将日期内的所有数据匹配出来
*
* 先过滤出所有符合工站位的数据,再匹配出时间段内的数据
*/
const startTime = new Date(datetime01).getTime();
const endTime = new Date(datetime02).getTime();
const match = data.filter(item =>
item.process_no === val.value &&
new Date(item.do_time).getTime() >= startTime &&
new Date(item.do_time).getTime() <= endTime
);
console.log(match, '匹配上的数据');
}
//... 之后的代码 ...
以上是 如何获取时间段内所有符合条件的数据? 的全部内容, 来源链接: utcz.com/p/935010.html