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