【问题标题】:Get the correct days in a specific month in 2014 javascript获取 2014 年特定月份的正确日期 javascript
【发布时间】:2014-06-27 12:42:14
【问题描述】:

我在获取 2014 年每个月的正确日期时遇到了问题。 它显示 1 月和 2 月各有 31 天,3 月 28 日。 我无法解决这个问题。也许您可以提出一些提示或技巧? :)

编辑: 我可以看到我的程序第一个月 == 0 是从 2013 年 12 月开始收集的,这很奇怪,因为我在“日期”函数中只提到了 2014 年。 你有什么建议吗?

这是我的代码: 月份和日子都是瑞典语,但我认为这不会是一个问题..

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++;
}

【问题讨论】:

  • 你可以了解switch statement
  • ... 或 JavaScript 数组
  • @Pointy 他们也是。如果你使用固定长度的缩写会更容易,因为这样你就可以做像"SunMonTueWedThuFriSat".substr(dow*3,3);这样的乱七八糟的东西:p
  • 您的“DaysInAMonth()”函数现在已损坏,因为您修复了月份计数器。应该是new Date(2014, month + 1, 0).getDate()

标签: javascript date object


【解决方案1】:

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];
}

【讨论】:

  • 好吧,将尝试将月份和日期放在一个数组中...但是如何在 1 月 1 日找到正确的日期?
  • 如果您正确构建日期 (new Date(2014, 0, 1)),您将获得正确的日期。
  • 我现在得到了正确的日期 :) 但是出现了一个新问题.. 我的第一个月是 2013 年 12 月,但我想要 2014 年 1 月... 真的很奇怪
  • @user3428781 ?? new Date(2014, 0, 1) 是“2014 年 1 月 1 日”
猜你喜欢
  • 2017-01-19
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 2017-06-08
  • 2021-12-16
  • 1970-01-01
相关资源
最近更新 更多