从日期数组中减去1个月

时间:2019-09-16 19:44:18

标签: javascript arrays date pickadate

我使用的日期选择器的索引为零,它在1个月前显示“错误的日期”。因此,我需要对此进行更正。我正在尝试以以下格式构建日期数组,然后更正日期选择器中的错误(减去1个月),然后将其插入日期选择器中。这是我到目前为止编写的代码,但仅适用于字符串,而不适用于数组。

我想做的事的例子:

var array = [
        new Date("11/28/2019"),
        new Date("12/25/2019"),
        new Date("01/01/2020"),
        new Date("01/20/2020"),
        new Date("02/17/2020"),
        new Date("05/25/2020"),
        new Date("07/04/2020"),
        new Date("09/07/2020"),
        new Date("11/26/2020"),
        new Date("12/25/2020"),
        ];

fixeddates.setMonth(array.getMonth() - 1);

但是我需要固定日期才能以以下格式输出数组:[yyyy,m,d]

因此,基本上我需要在所有这些日期中减去1个月,并将格式更改为日期选择器接受的格式。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以“映射”整个数组以将每一行更改为另一个对象。在这种情况下,我将每个日期转换为(yyyy,mm,dd)的数组。 Date.getMonth()已经返回负1的值,所以我没有再次减小它。

var array = [
        new Date("11/28/2019"),
        new Date("12/25/2019"),
        new Date("01/01/2020"),
        new Date("01/20/2020"),
        new Date("02/17/2020"),
        new Date("05/25/2020"),
        new Date("07/04/2020"),
        new Date("09/07/2020"),
        new Date("11/26/2020"),
        new Date("12/25/2020"),
        ];

var fixedDates = array.map(function(date) {
  return [date.getFullYear(), date.getMonth(), date.getDate()]
});
console.log(fixedDates);