我有 2 个 MMM yyyy 格式的日期。前 2013 年 6 月和 2015 年 5 月。我需要两个日期之间的年份列表或数组。以上日期:2013、2014、2015。如何在 javascript 或 JQuery 中实现这一点?提前致谢。
问问题
9728 次
5 回答
6
尝试这个..
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);
于 2013-07-16T12:39:36.633 回答
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]
于 2013-07-16T12:46:49.930 回答
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
方法.substr()
提取您需要的部分。但它会将其作为字符串返回,因此要对其进行数学运算,您需要将其转换为数字 - 一种方法是使用Number()
method。
于 2013-07-16T12:45:12.893 回答
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;
};
于 2013-07-16T13:00:35.833 回答
0
如果您在项目中负担得起,moment 库非常擅长处理日期。
请参阅: http: //momentjs.com/docs/#/displaying/difference/
要返回两个日期之间的年数差异,然后您可以增加起始年份并将新数字推送到数组中?
于 2013-07-16T12:35:21.967 回答