如何从当前日期的数组中获得7个连续日期(数组中的日期不同)?
让我们说我目前的日期是'5月9日',现在我希望在'5月9日'之后连续7次举办活动(日期)。这是我的json数组样本
[{
"date": "4 Mar",
"day": "Mon",
"holiday_name": "bbb"
},
{
"date": "7 Mar",
"day": "Thu",
"holiday_name": "ccc"
},
{
"date": "8 Mar",
"day": "Fri",
"holiday_name": "ddd"
},
{
"date": "5 Apr",
"day": "Fri",
"holiday_name": "eee"
},
{
"date": "14 Apr",
"day": "Sun",
"holiday_name": "fff"
},
{
"date": "14 Apr",
"day": "Sun",
"holiday_name": "gfgg"
},
{
"date": "24 Apr",
"day": "Wed",
"holiday_name": "ttt"
}, ...
//more in the list]
我得到了这个当前日期,
let day = date.getDate();
const monthNames = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
let month = monthNames[date.getMonth()];
let appendDate = day + " " + month;
首先,您可以按日期的升序对数组进行排序。然后使用filter
并获取一个新数组,其中date大于或等于所需日期。在你的情况下它是May 9
&在下面的例子中我考虑了今天的日期。之后,您可以使用slice
获取所需的天数。在你的情况下它是9但是例如我考虑了2
let date = [{
"date": "3 Mar",
"day": "Mon",
"holiday_name": "bbb"
}, {
"date": "4 Mar",
"day": "Mon",
"holiday_name": "bbb"
},
{
"date": "7 Mar",
"day": "Thu",
"holiday_name": "ccc"
},
{
"date": "8 Mar",
"day": "Fri",
"holiday_name": "ddd"
},
{
"date": "5 Apr",
"day": "Fri",
"holiday_name": "eee"
},
{
"date": "14 Apr",
"day": "Sun",
"holiday_name": "fff"
},
{
"date": "14 Apr",
"day": "Sun",
"holiday_name": "gfgg"
},
{
"date": "24 Apr",
"day": "Wed",
"holiday_name": "ttt"
}
];
let dt = date.sort(function(a, b) {
return new Date(a.date) - new Date(b.date)
});
function getConsDate(dat) {
return dt.filter(function(item) {
return new Date(item.date) >= new Date(dat)
}).slice(0, 2)
}
console.log(getConsDate('7 March'))