如何使用javascript

时间:2016-01-09 05:54:08

标签: javascript

我正在尝试在给定日期添加月份,并希望输出该日期。

我正在使用此代码,但它无效。

    var p = '2015-10-21';
    var myDate = new Date(p);
    var result1 = myDate.addMonths(3);

我希望结果如下:2016-01-21

3 个答案:

答案 0 :(得分:1)

你想要getMonth / setMonth

var p = '2015-10-21';
var myDate = new Date(p);
myDate.setMonth(myDate.getMonth() + 3);

不要担心溢出 - Date对象处理它

请注意。如果您希望结果使用不同的var

,则会覆盖myDate
var p = '2015-10-21';
var myDate = new Date(p);
var result1 = new Date(myDate);
result1.setMonth(result1.getMonth() + 3);
  正如@JohnHascall在评论中指出的那样,这不是一个月底的万无一失,例如将2015年11月30日增加三个月将导致2016年3月1日

答案 1 :(得分:1)

时刻库对于日期相关功能来说非常棒。 你可以做加,减等操作。 它有一个易于理解的语法。也可以避免边缘情况

如果您包含了时刻库,那么您的代码可以像这样重写

var p = '2015-10-21';
var myDate = moment(p, 'YYYY-MM-DD');
var result1 = myDate.add(3, 'months');
console.log (result1.format('YYYY-MM-DD'));

您可以从http://momentjs.com/

了解或下载时刻

答案 2 :(得分:0)

你可以试试这个 -

<script>
   var date = new Date();
   var month = date.getMonth()+1;
   var year = date.getFullYear();
   var day = date.getDate();

   function addMonth(addMonth){
     var u_date,u_year,u_month;
     u_date = month + addMonth;
     if(u_date > 12){
       var div = Math.floor(u_date / 12);
       var rem = u_date % 12;
       u_year = year + div;
       u_month = month + rem;
       document.getElementById("updated_date").innerHTML = day +" "+  u_month + " " + u_year;
     }else{
        document.getElementById("updated_date").innerHTML = day +" "+ (month+addMonth) + " " + year;
  }
}

addMonth(13);


</script>

这是html -

<div id="updated_date"></div>