我在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++;
}
答案 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];
}