如何将当前月份日期更改为另一个月

时间:2014-06-23 08:46:43

标签: javascript jquery html css html5

我想选择任何日期并将其转换为下个月的同一日期。例如 - 我选择2014年6月1日然后它显示2014年7月1日等等..

Fiddle

HTML

<input type='text' id='txtDate' readonly='true' />
<input type='button' id='btnConvert' value='Convert' /><br/>
Current Date : <span id='spnCurrentDate'></span><br/>
Next Month Date : <span id='spnNewDate'></span>

JS

    $("#txtDate").datepicker({
              changeMonth: true
    });

    $("#btnConvert").click(function(){
    $("#spnCurrentDate").html($("#txtDate").val());
    $("#spnNewDate").html($("#txtDate").val());

3 个答案:

答案 0 :(得分:1)

如果您只是询问如何将一个月添加到Date对象,则只能在2014-01-31 + 1个月中添加一个月 - &gt; 2014-02-31,转换为2014-03-03。

因此,如果您翻到下个月,您可能希望将日期设置为上个月的最后一天:

function addOneMonth(date) {
  var o = new Date(+date);
  date.setMonth(date.getMonth() + 1);

  // If have rolled over an extra month, set to last
  // day of previous month
  if (date.getDate() != o.getDate()) {
   date.setDate(0);
  }
  return date;
}

addOneMonth(new Date(2014,0,31)); // 2014-02-28
是不是......

答案 1 :(得分:0)

DEMO here

 var date1 = new Date();
 date1.setMonth(date1 .getMonth() + 1);

现在date1是一个持有1个月后日期的对象

如果要将其设置为jQuery UI DatePickers,则可以执行此操作

$("#txtDate").datepicker({
    changeMonth: true
});

$("#btnConvert").click(function(){
    var date1 = new Date($("#txtDate").val());
    date1.setMonth(date1 .getMonth() + 1);

    $("#txtDate").datepicker("setDate", date1 );

});

答案 2 :(得分:-1)

  

试试此演示:http://jsfiddle.net/PQfDc/151/

$("#txtDate").datepicker({
    changeMonth: true,
    minDate:'0',
    onClose: function( selectedDate ) {
        var d = new Date(selectedDate)
        d.setMonth(d.getMonth() + 1);
        $("#txtDate").datepicker("setDate", d );
        $("#spnSelectedDate").text(selectedDate);
        $("#spnNewDate").text($('#txtDate').val());
    }
});


$("#txtDate1").datepicker({
    changeMonth: true,
    minDate:'0' 
});

$("#btnConvert").click(function(){
    var d1 = new Date($("#txtDate1").val());
    var date = d1.getDate();
    var month = d1.getMonth()+1; 
    var year = d1.getFullYear();
    var newDate = month + "/" + date + "/" + year    
    $("#spnSelectedDate1").text($("#txtDate1").val());
    $("#spnNewDate1").text(newDate);
});