获取2014年javascript中特定月份的正确日期

时间:2014-06-27 12:42:14

标签: javascript date object

我在2014年获得每个月的正确日期时遇到问题。 它表明1月和2月分别为31天和3月28日。 我无法解决这个问题。也许你可以想出一些提示或技巧? :)

编辑: 我可以看到我的节目第一个月== 0是从2013年12月开始收集的,这是非常奇怪的,因为我只是在"日期"功能。 你有什么建议吗?

这是我的代码: 月份和日期都是瑞典语,但我认为这不会有问题。

function DaysInAMonth (month) {
return new Date(2014, month, 0).getDate();
}

function nameOfTheWeekdays(day) {
return [
"Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"
][day];
}

function getMonthName(month) {
 return [
 "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
][month];
}

var month = 0;
var day = 0;

for (var i=0; i<12; i++) {
for (var x=0; x<DaysInAMonth(i); x++) {

var c = new Date(2014, i, x);   

document.writeln( nameOfTheWeekdays(c.getDay()) + " " + (x+1) + " " + getMonthName(month)); 


day++;

}

month++;
}

1 个答案:

答案 0 :(得分:4)

JavaScript日期中的月份编号为0到11,而不是1到12.确实,您的“DaysInAMonth()”函数似乎依赖于这一事实。

2014年1月1日的日期是从new Date(2014, 0, 1)获得的。

您可以使用数组将月份或日期数字映射到名称中:

function getMonthName(m) {
  return [
    "Januari", "Februari", "Mars", "April",
    "Maj", "Juni", "Juli", "Augusti",
    "September", "Oktober", "November", "December"
  ][m];
}