在Javascript中设置接下来6个月的月份和年份值
我正在为我正在开发的纯iPhone网站使用一个相当不错的iPhone日期控件: 我想创建的一个轮子基本上是接下来的6个月,显示月份和年份。为了硬编码,我使用了:在Javascript中设置接下来6个月的月份和年份值,javascript,Javascript,我正在为我正在开发的纯iPhone网站使用一个相当不错的iPhone日期控件: 我想创建的一个轮子基本上是接下来的6个月,显示月份和年份。为了硬编码,我使用了: var monthsYears = { '05-2010': 'Jun 2010', '06-2010': 'Jul 2010', '07-2010': 'Aug 2010', '08-2010': 'Sep 2010', '09-2010': 'Oct 2010', '10-
var monthsYears = {
'05-2010': 'Jun 2010',
'06-2010': 'Jul 2010',
'07-2010': 'Aug 2010',
'08-2010': 'Sep 2010',
'09-2010': 'Oct 2010',
'10-2010': 'Nov 2010'
};
如果我选择第一个'05-2010':'Jun 2010'
05
是月份值2010
是年份,Jun
是月份名称
但很明显,这是没有用的,因为下个月它将不起作用!但我很困惑如何让它动态运行。感谢您的帮助。Javascript
Date
对象具有您所需的所有API
var monthsYears = (function() {
var d = new Date(), rv = {},
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
d.setDate(1); // handle February!!
for (var n = 1; n <= 6; ++n) {
var mn = d.getMonth() + 1;
mn = (mn < 10 ? '0' : '') + mn;
rv[ '' + mn + '-' + d.getFullYear()] =
months[d.getMonth()] + ' ' + d.getFullYear();
d.setMonth(d.getMonth() + 1);
}
return rv;
})();
var monthseares=(函数(){
var d=new Date(),rv={},
月份=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'];
d、 setDate(1);//处理二月!!
对于(var n=1;n而言,在将一个月添加到截至31日的一个月的最后一天时,应避免以下问题:
var monthsYears = (function () {
var result = {};
var d = new Date();
var monthsStr = [
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
];
var month = d.getMonth();
var year = d.getFullYear();
var padding = '';
for (i = 0; i <= 5; i++) {
padding = month < 9 ? '0' : '';
result[padding + (month + 1) + '-' + year] = monthsStr[month] + ' ' + year;
if (++month > 11) {
month = 0;
year++;
}
}
return result;
})();
var monthswears=(函数(){
var result={};
var d=新日期();
var monthsStr=[
‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’,
‘七月’、‘八月’、‘九月’、‘十月’、‘十一月’、‘十二月’
];
var month=d.getMonth();
var year=d.getFullYear();
变量填充=“”;
对于(i=0;i 11){
月份=0;
年份++;
}
}
返回结果;
})();
如果日期是每月的31日,它是否能正常工作,因为它将使用setMonth()
?…尝试使用新日期('2010-01-31')
…它将跳过“二月”。是的,这是一个很好的方法。谢谢!(我推迟“日期”对象以了解一年的结束时间,因为我不相信自己!)@尖刻的:哈哈!不相信自己是一个很好的习惯:)…使用setDate(1)
是个好主意。这样更整洁。