我有MMM yyyy格式的2个日期。对于2013年6月和2015年5月。我需要两个日期之间的年份列表或数组。上述日期:2013,2014,2015。如何在javascript或JQuery中实现这一点?提前谢谢。
答案 0 :(得分:3)
试试这个..
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);
答案 1 :(得分:2)
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]
答案 2 :(得分:1)
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);
如果您知道输入值始终采用MMM yyyy
格式,则无需转换为实际的Date
对象,您只需使用String
method .substr()
提取所需的部分即可。但它会将其作为字符串返回,因此要对其进行数学运算,您需要将其转换为数字 - 一种方法是使用the Number()
method。
答案 3 :(得分:0)
如果您能在项目中负担得起,那么时刻图书馆非常擅长使用日期。
请参阅: http://momentjs.com/docs/#/displaying/difference/
为了返回两个日期之间的年数差异,然后你可以在你的起始年份增加并将新数字推送到一个数组?
答案 4 :(得分:0)
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;
};