编程语言
首页 > 编程语言> > javascript – 生成完整的日期对象数组

javascript – 生成完整的日期对象数组

作者:互联网

问题

我正在使用nvd3来呈现一些特定于日期的数据.但是,如果没有特定日期的数据,则不存在任何记录,并且nvd3不会呈现该数据点,而是在存在的数据点之间进行插值.因此,我需要生成缺少的日期,以便nvd3显示没有与之关联的数据的日期.

我想做的事

我需要生成一个如下所示的数组:

[ {year: 2015, month: 1, day: 1},
  {year: 2015, month: 1, day: 2},
  ...
]

生成此数组的函数将采用开始日期和结束日期,并生成这两个日期之间的所有日期.

然后我将它与我的数据数组合并.这样,数据将包含数据的日期,没有数据的日期仍将显示在图表上,而不会跳过任何缺失的日期.

使用Date对象有一种简单的方法吗?即在生成这个数组的时候,我需要知道哪个月有30天或31天,2月是特殊的,闰年等等…我可以通过指定每个月的天数来强制它,但我会想知道是否有更简单的方法来做到这一点.

解决方法:

试试这个:

function getDateArray(startDate, days){
   return Array(days)
            .fill()
            .map(function(e,idx) { 
                var d = new Date(startDate); 
                d.setDate(d.getDate() + idx); 
                return {
                    year: d.getFullYear(), 
                    month: d.getMonth() + 1, 
                    day: d.getDate() }; 
                }
             );
}

标签:nvd3-js,javascript,date
来源: https://codeday.me/bug/20190727/1556133.html