在JavaScript中两个日期之间过滤日期

时间:2020-08-19 08:47:10

标签: javascript

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

Detaileddata是我的数组,其中包含一组数据。我的约会日期为

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

其中日期的格式为 [DD.MM.YYYY] , 但是我能达到的结果只是具有 01.07.2020 18.08.2020 的数据。但是我想显示 2020年1月7日 2020年8月18日

之间的数据

打字稿部分

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

1 个答案:

答案 0 :(得分: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);

相关问题