如何在JavaScript中获得两年的月份范围
How to get a range of months over a span of two years in JavaScript
我希望根据用户选择的范围获得前几个月的范围。例如,用户选择:July-2015到September-2015。我可以使用下面的对象获得数字月份值。
var months = {January: 1, February: 2, March: 3, April: 4, May: 5, June: 6, July: 7, August: 8, September: 9, October: 10, November: 11, December: 12};
然后我可以使用这个逻辑来计算出之前的范围- http://jsfiddle.net/0cq5nprt/
var currStartMonth = 7,
currEndMonth = 9,
monthRange = (currEndMonth - currStartMonth) + 1,
prevStartMonth = currStartMonth - monthRange,
prevEndMonth = (prevStartMonth + monthRange) - 1;
我遇到的问题是,当范围超过两年的跨度时,它就像: 2014年12月至2015年1月。这里应该是2014年10月到2014年11月。
希望我的问题很清楚。任何建议都会很有帮助!
我想你在计算时应该使用年。如下所示
var yearDiff = endYear - currentYear
if yearDiff = 0 {
monthRange = (currEndMonth - currStartMonth) + 1,
prevStartMonth = currStartMonth - monthRange,
prevEndMonth = (prevStartMonth + monthRange) - 1;
} else {
calcEndMonth = calcEndMonth + 12
monthRange = (calcEndMonth - currStartMonth) + 1,
prevStartMonth = curgstartmonth - monthRange,
prevEndMonth = (prevStartMonth + monthRange) - 1;
if prevEndMonth > 12 {
prevEndYear = curEndYear - 1
prevEndMonth = prevEndMonth - 12
}
}
考虑到你的例子2014年12月至2015年1月
var yearDiff = endYear - currentYear
// yearDiff = 2015 - 2014 = 1
{
calcEndMonth = calcEndMonth + 12
//calcEndMonth = 1 + 12 = 13
monthRange = (calcEndMonth - currStartMonth) + 1,
//monthRange = (13 - 12) + 1 = 2
prevStartMonth = curStartmonth - monthRange,
//prevStartMonth = 12 (December) - 2 = 10(October)
prevEndMonth = (prevStartMonth + monthRange) - 1;
//prevEndMonth = (10 + 2) - 1 = 11(November)
if prevEndMonth > 12 {
prevEndYear = curEndYear - 1
prevEndMonth = prevEndMonth - 12
}
相关文章:
- javascript中两年之间的小时差(带闰年)
- 如何在javascript中显示两年之间的所有闰年
- 如何从日期范围选择器中获取两个日期
- JavaScript函数,用于计算两个日期之间的年、月和天数
- 在两个浏览器选项卡之间共享变量范围
- 在Jquery或Javascript中获取两个范围或日期之间的通信周数
- 连接angularjs中的两个范围模型
- 正则表达式用于验证两个范围之间的数字
- 检测超过两年的浏览器
- Google 应用脚本:返回 2 个两个范围之间唯一值的函数
- 如何在JavaScript中获得两年的月份范围
- 生成两个范围之间的日期(js)
- 如何将两个范围值相加,然后乘以一个select标记
- 在javascript中获取两个范围之间的交集
- 在morris.js折线图中绘制两个范围的y轴
- 同时更改两个范围- javascript
- 重构if/else语句,时间跨度在两年之间
- 基于级别数组协调两个范围输入
- 是否可以在一个简短的内联事件中滑动两个范围输入元素
- 我如何扩展PrimeFaces日期picker js自定义年范围