如何在javascript中过滤日期,以仅获取过去4个月的日期?

如何在javascript中过滤日期,以仅获取过去4个月的日期?,javascript,jquery,Javascript,Jquery,如何在javascript中过滤日期,以仅获取过去4个月的日期 例如,如果我的最后一个日期是2014年10月21日,我只需要2014年7月至10月的数据(因此,如果我有2013年10月14日,它将被过滤掉) 以下是我目前掌握的情况: $.each(dataArray, function(i, data){ boundaryDates.push(data.values[0].x); boundaryDates.push(data.value

如何在javascript中过滤日期,以仅获取过去4个月的日期

例如,如果我的最后一个日期是2014年10月21日,我只需要2014年7月至10月的数据(因此,如果我有2013年10月14日,它将被过滤掉)

以下是我目前掌握的情况:

            $.each(dataArray, function(i, data){

        boundaryDates.push(data.values[0].x);
        boundaryDates.push(data.values.slice(-1).pop().x);
            });

            var maxDate=new Date(Math.max.apply(null,boundaryDates));
            var minDate=new Date(Math.min.apply(null,boundaryDates));

            //Convert Date
            var day = maxDate.getDay() < 9 ? '0'+maxDate.getDay():maxDate.getDay();
            var month = maxDate.getMonth() < 9 ? '0'+maxDate.getMonth():maxDate.getMonth();

            var mday = minDate.getDay() < 9 ? '0'+minDate.getDay():minDate.getDay();
            var mmonth = minDate.getMonth() < 9 ? '0'+minDate.getMonth():minDate.getMonth();

            var maximumDate = maxDate.getFullYear()+'-'+month+'-'+day;
            var minimumDate = minDate.getFullYear()+'-'+mmonth+'-'+mday;


    $.each(chartData, function(j, gid){
        if(gid.x >= minimumDate  && gid.x <= maximumDate ){
            gvalues.push(gid);
        }
    });
$。每个(数据数组、函数(i、数据){
boundaryDates.push(data.values[0].x);
boundaryDates.push(data.values.slice(-1.pop().x);
});
var maxDate=新日期(Math.max.apply(null,boundaryDates));
var minDate=新日期(Math.min.apply(null,boundaryDates));
//转换日期
var day=maxDate.getDay()0'+maxDate.getDay():maxDate.getDay();
var month=maxDate.getMonth()0'+maxDate.getMonth():maxDate.getMonth();
var mday=minDate.getDay()<9?“0'+minDate.getDay():minDate.getDay();
var ammonth=minDate.getMonth()<9?“0'+minDate.getMonth():minDate.getMonth();
var maximumDate=maxDate.getFullYear()++'-'+月+'-'+日;
var minimumDate=minDate.getFullYear()++'-'+month++'-'+mday;
$.each(图表数据、函数(j、gid){

如果(gid.x>=minimumDate&&gid.x如果我以正确的方式理解您的问题,这将是算法:

  • 从给定的日期数组中获取最后一个(最大)日期
  • 把它复制到新的日期
  • 将该副本的月份设置为提前4个月(
    setMonth
  • 将该副本推送到新阵列,然后
  • 将新日期(使用
    setDate
    )推送到该数组中,从复制的日期开始,直到推送到的日期是最长日期为止
代码:

var date0=新日期()
,dateBack=新日期(date0)
,最后4个月日期=[];
dateBack.setMonth(dateBack.getMonth()-4);
最后4个月的日期推送(新日期(追溯));
while(dateBack”);
//填充辅助工具
函数padLeft(num、base、chr){
var len=(字符串(基数| | 10).length-String(num.length)+1;
返回len>0?新数组(len).join(chr | |'0')+num:num;
}

向我们展示你迄今为止所做的尝试。人们会指点你。但现在你应该尝试更详细地解释你需要什么。你可以使用,请查看代码。非常感谢Kooilnc。这对我很有帮助:)嗨@AliTariq,很高兴我能提供帮助