最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何从当前日期的数组中获得7个连续日期(数组中的日期不同)?

运维笔记admin14浏览0评论

如何从当前日期的数组中获得7个连续日期(数组中的日期不同)?

如何从当前日期的数组中获得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'))
发布评论

评论列表(0)

  1. 暂无评论