JavaScript-在数月和数年中循环,每次执行操作
JavaScript - Cycle through months and years, performing action each time
我有一个开始的年份和月份,例如2007年12月,还有一个结束的年份和月,例如2015年12月。开始日期和结束日期可以是相同的日期。
如何循环每个月并每次调用一个函数?
谢谢。
使用力矩
var month = (moment(moment('1/12/2015')).diff(moment(moment('1/12/2007')), 'month'))
for (var i=0;i<month;i++){
console.log("ssss")
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
我想明白了。
var date_start = new Date(2007, 11) // remember months start with 0
var date_end = new Date(2015, 11) // remember months start with 0
var date_count = date_start
while (date_count <= date_end)
{
alert(date_count.toString())
date_count.setMonth(date_count.getMonth() + 1)
}
有很多方法可以做到这一点。
转换为月份总数
我会做以下操作:将月''年转换为一个整数值,它表示从Common Era开始经过的月数。然后,您可以轻松地对其进行迭代
以下是工作片段:
function iterateThroughMonthes(monthFrom, yearFrom, monthTo, yearTo, callback)
{
var totalMonthFrom = yearFrom * 12 + (monthFrom - 1);
var totalMonthTo = yearTo * 12 + (monthTo - 1);
for (var i = totalMonthFrom; i <= totalMonthTo; i++) {
callback(Math.floor(i / 12), i % 12 + 1);
}
}
// From June, 2014 to December, 2015
iterateThroughMonthes(6, 2014, 12, 2015, function(m, y) {
document.body.innerHTML += m + "." + y + "<br/>";
});
While循环
您可以制作一个简单的while
循环,它将在几个月内迭代。
function iterateThroughMonthes(monthFrom, yearFrom, monthTo, yearTo, callback)
{
while (yearFrom < yearTo || yearFrom === yearTo && monthFrom <= monthTo)
{
callback(monthFrom++, yearFrom);
if (monthFrom === 13)
{
monthFrom = 1;
yearFrom++;
}
}
}
// From June, 2014 to December, 2015
iterateThroughMonthes(6, 2014, 12, 2015, function(m, y) {
document.body.innerHTML += m + "." + y + "<br/>";
});
此外,您还可以使用JavaScriptDate
对象。
相关文章:
- 单击元素两次后执行操作
- 如何在mvc3中执行操作而不更改当前页面
- jQuery onunload在按下按钮时执行操作
- 如果DOM发生更改,您将如何执行操作
- 在执行所有回调函数后执行操作
- JavaScript 对输入框执行操作
- 如何根据各种复选框状态执行操作
- 对页面重新加载 Jquery 执行操作
- jQuery如果大于则执行操作,但只执行一次
- ngStorage是否异步执行操作
- 如何逐一执行操作
- 只有当输入文本是example.com这样的域时才执行操作
- Javascript数学不起作用,更好的方式来执行操作
- Qubit在控制台中执行操作
- 停止setInterval,直到未执行操作
- 我如何使用javascript对音频标记执行操作
- JS 函数将对象作为输入,并返回一个对象,该对象对作为参数传递的对象执行操作
- 单击时执行操作多个具有相同类的 href
- 在 JavaScript 中传递指定秒数后如何执行操作
- 如何在对用户控件执行操作后调用 Web 服务