如何获取月份名称以显示在Loop中返回
问题描述:
我正在学习JS,因此无法找出答案。我想问问你们中的任何一个人是否可以发现我的错误,为什么我的循环结果以“未定义”而不是“十二月”出现12次。请帮忙!如何获取月份名称以显示在Loop中返回
感谢
window.onload = function() {
document.getElementById("months").innerHTML = getMonth(12);
};
for(var month=0; month < 12; month++)
{
document.getElementById("months").innerHTML = document.getElementById("months").innerHTML + "<br/>" + month + getMonth(month);
}
function getMonth(month) {
var monthName;
if (month == 12) {
monthName = "December";
}
return monthName;
}
答
因为你的方法返回December
只有当它的参数是等于12,但month
变量只得到到12时循环被打破(遵守month < 12
条件)。调整你的方法...
if (month == **11**) {
...将给你12月在这个列表的末尾。说完这一切,我强烈建议使用已建立的库(如Moment.js)来处理日期。它会为你节省很多时间和精力。 )
作为一个旁注,我会先建立整个'monthes-string',然后才用它作为innerHTML
。 DOM操作要谨慎使用。
答
月是月11号。它从0开始
答
month
正从0
增加到11
(它在到达12
之前停止)。由于传递给getMonth
的month
的值永远不是12
,所以返回的monthName
始终未定义。
您想要的是将月份数字映射到名称的方法。例如:
function getMonth(month) {
var monthStr = ['January', 'February', ... ];
return monthStr[month];
}
答
我更新你的jsfiddle ...基本上是:
for(var month=1; month < 13; month++)
以富人为1个月到12
和
var monthName="";
避免 “不确定”
嗨,谢谢你,我正在12月现在结果,但我怎么能重复12次? – meztli 2013-03-20 16:14:16
所有月份?只要删除检查('if(month == 11)'line)然后。 – raina77ow 2013-03-20 16:16:39
如果我想重复12月12日? – meztli 2013-03-20 16:25:37