Search code examples
javascriptjquerytwitter-bootstrapbootstrap-datetimepicker

Bootstrap datetime picker adding months instead of days


I have the following code snippet in jsfiddle. I'm trying to add given number as days to the calendar.

HTML Code:

<input id="firstDate"/>
<input type="hidden" value="11" id="days">
<br/>
<input id="secondDate"/>

Javascript:

<script>
var pickerOptsGeneral = {
format: "dd/mm/yyyy",
autoclose: true,
minView: 2,
maxView: 2
};

 $('#firstDate')
.datetimepicker(pickerOptsGeneral)
.on('changeDate', function(ev){
var days = document.getElementById("days").value;
 var oldDate = new Date(ev.date);
 var newDate = new Date();
 newDate.setDate(oldDate.getDate() + days);

 secondDate.val(newDate.getDate()+"/"+(newDate.getMonth()+1)+"/"+newDate.getFullYear());
 secondDate.datetimepicker('update');
});
var secondDate = $('#secondDate').datetimepicker(pickerOptsGeneral);
</script>

The above code is adding months instead of days. If i select the date

01/06/2017 the output will be 19/9/2017

If I hardcode the date:

     newDate.setDate(oldDate.getDate() + 11);

This will give me the output I want. Can anyone help me on this ?


Solution

  • try this...

    var pickerOptsGeneral = {
        format: "dd/mm/yyyy",
        autoclose: true,
        minView: 2,
        maxView: 2
    };
    $('#firstDate')
      .datetimepicker(pickerOptsGeneral)
      .on('changeDate', function(ev){
         var days = parseInt(document.getElementById("days").value);
         var oldDate = $("#firstDate").data("datetimepicker").getDate();
         var oldDateOriginal = new Date(oldDate);
         var  newDate = new Date(oldDateOriginal);
         newDate.setDate(newDate.getDate() + days);
         secondDate.val(newDate.getDate()+"/"+(newDate.getMonth()+1)+"/"+newDate.getFullYear());
         secondDate.datetimepicker('update');
    });
    var secondDate = $('#secondDate').datetimepicker(pickerOptsGeneral);
    

    JSFfiddle link for same - http://jsfiddle.net/sdyoxx2r/9/