在javascript中过滤两个日期之间的日期

问题描述 投票:0回答:2

我试图过滤两个日期之间的数据。 但我无法实现

其中详细数据是我的具有数据集的数组。其中我的日期为

date = {01.07.2020,02.07.2020,03.07.2020,.....18.08.2020}

其中日期的值格式为 [DD.MM.YYYY], 但我能够达到的结果只是具有01.07.202018.08.2020的数据。但我想显示 01.07.202018.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);
javascript typescript
2个回答
2
投票

更好的方法始终是使用像 date-fnsmoment.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);


0
投票

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);

© www.soinside.com 2019 - 2024. All rights reserved.