Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从月数中获取天数_Javascript_Arrays_Input - Fatal编程技术网

Javascript 从月数中获取天数

Javascript 从月数中获取天数,javascript,arrays,input,Javascript,Arrays,Input,英国最大的JS noob试图获得一个月内你在输入中写入1-12天的天数 有人能告诉我我做错了什么吗 JS: window.onload = funkytown; var mnd = [[0, "Jan"], [1, "Feb"], [2, "Mar"], [3, "Apr"], [4, "Mai"], [5, "Jun"], [6, "Jul"], [7, "Aug"], [8, "Sep"], [9, "Okt"], [10, "Nov"], [11, "Des"]]; var days

英国最大的JS noob试图获得一个月内你在输入中写入1-12天的天数

有人能告诉我我做错了什么吗

JS:

window.onload = funkytown;

var mnd = [[0, "Jan"], [1, "Feb"], [2, "Mar"], [3, "Apr"], [4, "Mai"], [5, "Jun"], [6, "Jul"], [7, "Aug"], [8, "Sep"], [9, "Okt"], [10, "Nov"], [11, "Des"]];

var days = [[0, 31], [1, 28], [2, 31], [3, 30], [4, 31], [5, 30], [6, 31], [7, 31], [8, 30], [9, 31], [10, 30], [11, 31]];

function funkytown() {  
    document.getElementById("button").onclick = calender;
}
function calender() {
    var tall = parseint(document.getElementById)("box").value;
    if(tall >= 1 && tall <= 12) {
        var mndminus = tall - 1;

        for(i = 0; i < mnd.length; i++) {
            if(mnd[i][0] == mndminus) {
                document.getElementById("text").innerHTML = mnd[i][1] + " - " + days[i][1];
            }
        }
    }
}
<input type="number" id="box" max="12" />
<input type="button" id="button" value="Trykk" />
<span id="text"></span>
window.onload=funkytown;
var mnd=[0,“一月”],[1,“二月”],[2,“三月”],[3,“四月”],[4,“五月”],[5,“六月”],[6,“七月”],[7,“八月”],[8,“九月”],[9,“十月”],[10,“十一月”],[11,“十二月”];
风险值天数=[[0,31]、[1,28]、[2,31]、[3,30]、[4,31]、[5,30]、[6,31]、[7,31]、[8,30]、[9,31]、[10,30]、[11,31];
函数funkytown(){
document.getElementById(“按钮”).onclick=日历;
}
功能日历(){
var-tall=parseint(document.getElementById)(“box”).value;

如果(高度>=1&&tall,您只需替换此行:

var tall = parseint(document.getElementById)("box").value;
作者:

您的
parseint
应该是
parseint
getElementById
之后,应该在行尾

希望这有帮助


var mnd=[[0,“一月”]、[1,“二月”]、[2,“三月”]、[3,“四月”]、[4,“五月”]、[5,“六月”]、[6,“七月”]、[7,“八月”]、[8,“九月”]、[9,“十月”]、[10,“十一月”]、[11,“日”];
风险值天数=[[0,31]、[1,28]、[2,31]、[3,30]、[4,31]、[5,30]、[6,31]、[7,31]、[8,30]、[9,31]、[10,30]、[11,31];
函数funkytown(){
document.getElementById(“按钮”).onclick=日历;
}
功能日历(){
var-tall=parseInt(document.getElementById(“box”).value);
如果(高度>=1&&tall如注释所示
由于闰年的原因,二月并不总是有28天。你会更好
创建一个函数来计算一个月有多少天。幸运的是,
使用JavaScript有一种相对简单的方法来实现这一点
要
0
,请使用 或 , 生成的
Date
对象将设置为上个月的最后一天, 使用此函数,我们可以轻松创建一个函数来获取一个月的天数

function getDaysInMonth(month) {
  var d = new Date();
  d.setMonth(month + 1);
  d.setDate(0);
  return d.getDate();
}
此函数期望
month
Date
构造函数一样以零为基础 (这意味着它期望
month
是介于
0
11
之间的数字,而不是
1
12

我还建议使用不同的数据结构来查找月份 使用对象,而不是通过两个元素数组的数组循环 作为一本字典

var monthLookup = {
  0: "Jan",
  1: "Feb",
  2: "Mar",
  3: "Apr",
  4: "Mai",
  5: "Jun",
  6: "Jul",
  7: "Aug",
  8: "Sep",
  9: "Okt",
  10: "Nov",
  11: "Des"
};
然后查找月份就像查找monthLookup[mndminus]
一样简单

通过这些更改,您的代码将如下所示:

var getDaysInMonth = function (month) {
    var d = new Date();
    d.setMonth(month + 1);
    d.setDate(0);
    return d.getDate();
  },
  monthLookup = {
    0: "Jan",
    1: "Feb",
    2: "Mar",
    3: "Apr",
    4: "Mai",
    5: "Jun",
    6: "Jul",
    7: "Aug",
    8: "Sep",
    9: "Okt",
    10: "Nov",
    11: "Des"
  },
  calender = function () {
    var tall = parseInt(document.getElementById("box").value, 10),
      mndminus;

    if (tall >= 1 && tall <= 12) {
      mndminus = tall - 1;
      document.getElementById("text").innerHTML = monthLookup[mndminus] + " - " + getDaysInMonth(mndminus);
    }
  },
  funkytown = function () {
    document.getElementById("button").onclick = calender;
  };

window.onload = funkytown;
var getDaysInMonth=函数(月){
var d=新日期();
d、 设置月(月+1);
d、 设定日期(0);
返回d.getDate();
},
monthLookup={
0:“一月”,
1:“二月”,
2:“三月”,
3:“四月”,
4:“麦”,
5:“六月”,
6:“七月”,
7:“八月”,
8:“9月”,
9:“Okt”,
10:“11月”,
11.“Des”
},
日历=功能(){
var tall=parseInt(document.getElementById(“box”).value,10),
mndminus;

如果(tall>=1&&tall不硬编码月长,例如明年就错了。使用日期()对象方法来计算给定月份的天数,而不是依赖字典。因为闰年,对吗?是的,我这次不必考虑这个问题,但感谢你的投入,伙计!感谢你:你已经知道出了什么问题。毕竟,你亲眼看到了这件事,决定在堆栈上提问verflow.那么,为什么不在你的帖子中描述到底哪里出了问题呢?请参阅(另外,作为一个新用户,你可能需要阅读。)或者更简单的方法
返回新日期(年、月、0)。getDate();
…仅仅因为年份…无论如何+1,干净的方法。@nelek是的,我这样做的原因是因为你不需要在函数中传递年份。如果你已经在收集年份,并且/或者想手动设置年份,我同意使用
日期
构造函数会更简洁。
var monthLookup = {
  0: "Jan",
  1: "Feb",
  2: "Mar",
  3: "Apr",
  4: "Mai",
  5: "Jun",
  6: "Jul",
  7: "Aug",
  8: "Sep",
  9: "Okt",
  10: "Nov",
  11: "Des"
};
var getDaysInMonth = function (month) {
    var d = new Date();
    d.setMonth(month + 1);
    d.setDate(0);
    return d.getDate();
  },
  monthLookup = {
    0: "Jan",
    1: "Feb",
    2: "Mar",
    3: "Apr",
    4: "Mai",
    5: "Jun",
    6: "Jul",
    7: "Aug",
    8: "Sep",
    9: "Okt",
    10: "Nov",
    11: "Des"
  },
  calender = function () {
    var tall = parseInt(document.getElementById("box").value, 10),
      mndminus;

    if (tall >= 1 && tall <= 12) {
      mndminus = tall - 1;
      document.getElementById("text").innerHTML = monthLookup[mndminus] + " - " + getDaysInMonth(mndminus);
    }
  },
  funkytown = function () {
    document.getElementById("button").onclick = calender;
  };

window.onload = funkytown;