gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:36:26 25 4
gpt4 key购买 nike

如何在 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);
}
});

最佳答案

如果我正确理解你的问题,这将是算法:

  • 从给定的日期数组中获取最后(最大)日期
  • 将其复制到新日期
  • 将该副本的月份设置为 4 个月前 (setMonth)
  • 将该副本推送到新数组
  • 将新日期(使用 setDate)推送到该数组,从复制的日期开始,直到要推送的日期为最大日期

在代码中:

var date0 = new Date()
,dateBack = new Date(date0)
,last4MonthsDate = [];

dateBack.setMonth(dateBack.getMonth()-4);
last4MonthsDate.push(new Date(dateBack));

while (dateBack < date0) {
dateBack.setDate(dateBack.getDate()+1);
last4MonthsDate.push(new Date(dateBack));
}

// show the result
document.querySelector('#result').innerHTML =
last4MonthsDate.map(function (v) {
return [ v.getFullYear(),
padLeft(v.getMonth()+1),
padLeft(v.getDate()) ].join('-');
}
).join('<br>');

// helper for padding
function padLeft(num, base, chr) {
var len = (String(base || 10).length - String(num).length) + 1;
return len > 0 ? new Array(len).join(chr || '0') + num : num;
}
<div id="result"></div>

关于javascript - 如何在 javascript 中过滤日期以仅获取过去 4 个月的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26479747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com