Javascript 两个给定日期之间的年份列表或数组
我有两个MMM yyyy格式的日期。2013年6月和2015年5月前。我需要两个日期之间的年份列表或数组。上述日期:201320142015。如何在javascript或JQuery中实现这一点?提前感谢。如果您在项目中负担得起的话,moment library非常擅长处理日期 见: 要返回两个日期之间的年数差,然后只需增加起始年份的年数,并将新数字推送到一个数组中?试试这个Javascript 两个给定日期之间的年份列表或数组,javascript,jquery,Javascript,Jquery,我有两个MMM yyyy格式的日期。2013年6月和2015年5月前。我需要两个日期之间的年份列表或数组。上述日期:201320142015。如何在javascript或JQuery中实现这一点?提前感谢。如果您在项目中负担得起的话,moment library非常擅长处理日期 见: 要返回两个日期之间的年数差,然后只需增加起始年份的年数,并将新数字推送到一个数组中?试试这个 var d = new Date( "01 " + "July 2013"); first = d.g
var d = new Date( "01 " + "July 2013");
first = d.getFullYear();
var s = new Date( "01 " + "May 2018");
second = s.getFullYear();
arr = Array();
for(i = first; i <= second; i++) arr.push(i);
alert(arr);
如果您知道输入值将始终采用MMM yyyy格式,则无需转换为实际的日期对象,您只需使用提取所需的部分即可。但它将以字符串的形式返回,因此要对其进行数学运算,您需要将其转换为数字-一种方法是使用。您尝试过什么吗?一个简单的循环就可以做到这一点。只需在parseIntX.substr4,4,10之间循环,就可以为开始数据和结束日期创建日期对象,然后从中循环创建和数组。您尝试过什么?您的示例与指定的MMM yyyy格式不匹配—它们没有连字符。在你寻求帮助之前,你至少需要在你自己的头脑中弄清楚这个要求。亲爱的Bergi,如果这是一个简单的循环,你能展示它然后投票吗???我想要他们之间的时间序列。对于上述ex,输出值应该类似于201320142015201620172018。@Akram-这就是这个答案的作用。arr将为[2013年、2014年、2015年、2016年、2017年、2018年]。您需要差异做什么?你可以开始增加年数……对这样一个问题付出太多的努力:-+1无论如何只需要3个变量就可以做到:-+1无论如何+1,即使jQuery不够。
var date1 = "JUN 2013";
var date2 = "MAY 2015";
// get the year parts, and convert from strings to numbers:
var year1 = Number(date1.substr(4));
var year2 = Number(date2.substr(4));
// create an empty array:
var yearList = [];
// loop between the two years:
for (var i = year1; i <= year2; i++) {
// add to array:
yearList.push(i);
}
// print list of years to the console:
console.log(yearList);
var startDate = "JUN 2013",
endDate = "MAY 2015";
var result = [];
for (var from=+startDate.slice(4),to=+endDate.slice(4); from<=to; from++)
result.push(from);
console.log(result); // Array [2013, 2014, 2015]
var getArrayOfYears = function(date1 /* MMM YYYY */, date2 /* MMM YYYY */) {
var arrayOfYears = [];
// Get the years
date1 = parseInt(date1.substring(4), 10);
date2 = parseInt(date2.substring(4), 10);
// Order the years
if (date2 > date1) {
var tmp = date2;
date2 = date1;
date1 = tmp;
}
// Loop them
var dif = date1 - date2;
for (var i = 0; i <= dif; i++) {
arrayOfYears[arrayOfYears.length] = date1 - i;
}
return arrayOfYears;
};