代码之家  ›  专栏  ›  技术社区  ›  ariefbayu

javascript添加日期问题

  •  0
  • ariefbayu  · 技术社区  · 15 年前

    我有一个片段:

    var d1 = parseInt( document.getElementById('day1').value );
    var m1 = parseInt( document.getElementById('month1').value );
    var y1 = parseInt( document.getElementById('year1').value );
    
    var dt = new Date();
    dt.setYear(y1);
    dt.setMonth(m1);
    dt.setDate(d1 + 1);
    
    document.getElementById('day2').value = dt.getDate();
    document.getElementById('month2').value = dt.getMonth();
    document.getElementById('year2').value = dt.getYear();
    

    我的目标是,通过从date1添加1天来自动初始化date2的值。 但是,当我填写时:

     day1 = 32
     month1 = 1
     year1 = 2009
    

    我得到:

     day1 = 5
     month1 = 2
     year1 = 2009
    

    我不知道发生了什么事。你们知道解决办法吗?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Community noseratio    7 年前

    JavaScript Date 对象将月份处理为以零为基础的数字(0-jan、1-feb、…、11-dec)。

    你也可以 problems set 方法,我建议您使用 Date constructor :

    var d1 = +document.getElementById('day1').value;
    var m1 = +document.getElementById('month1').value - 1; // zero based!!
    var y1 = +document.getElementById('year1').value;
    
    var dt = new Date(y1, m1, d1);
    
        2
  •  1
  •   rdivilbiss    15 年前