我试图过滤两个日期之间的数据。 但我无法实现
其中详细数据是我的具有数据集的数组。其中我的日期为
date = {01.07.2020,02.07.2020,03.07.2020,.....18.08.2020}
其中日期的值格式为 [DD.MM.YYYY], 但我能够达到的结果只是具有01.07.2020和18.08.2020的数据。但我想显示 01.07.2020 和 18.08.2020
之间的数据打字稿部分
var startDate = "01.07.2020";
var endDate = "18.08.2020";
this.Detaileddata = this.Detaileddata.filter((item) => {
return (item.date >= startDate && item.date <= endDate);
})
console.log("result"+this.detaileddata);
更好的方法始终是使用像 date-fns 或 moment.js 这样的库。使用普通方法。您可以将日期转换为时间戳。我假设您收到这些日期:
var startDate = "01.07.2020";
var endDate = "18.08.2020";
const detailedData = [{date:"01.07.2020"},{date:"20.07.2020"},{date:"25.07.2020"},{date:"01.08.2020"},{date:"18.08.2020"},{date:"01.09.2020"},{date:"01.10.2020"}]
const filteredDate = detailedData.filter(item => {
let itemDate = item.date.split('.').reverse().join("-")
let startDateModified = startDate.split('.').reverse().join("-")
let endDateModified = endDate.split('.').reverse().join("-")
return (new Date(itemDate).getTime() >= new Date(startDateModified).getTime() && new Date(itemDate).getTime() <= new Date(endDateModified).getTime());
})
console.log("result",filteredDate);
var startDate = "01.07.2020";
var endDate = "18.08.2020";
const detailedData = [{date:"01.07.2020"},{date:"20.07.2020"},{date:"25.07.2020"},{date:"01.08.2020"},{date:"18.08.2020"},{date:"01.09.2020"},{date:"01.10.2020"}]
const filteredDate = detailedData.filter(item => {
let itemDate = item.date.split('.').reverse().join("-")
let startDateModified = startDate.split('.').reverse().join("-")
let endDateModified = endDate.split('.').reverse().join("-")
return (new Date(itemDate).getTime() >= new Date(startDateModified).getTime() && new Date(itemDate).getTime() <= new Date(endDateModified).getTime());
})
console.log("result",filteredDate);