Search code examples
javascriptangularjsangularjs-scope

date change according to days but other month its not working


i have following function i used for date change according to my days its working fine when i used this month, but when i select month of October its show me wrong date. i spend 4 hours in this but not success any one help me this please

     <div class="col-md-3">
   <label>In Date</label>
   <div class="input-group date form_date " data-date="" data-date-format="dd-mm-yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd">
  <input ng-model="HotelInDate" autocomplete="off" id="InDate" class="form-control input-height" placeholder="Date" type="text">
 <span class="input-group-addon"><span class="fa fa-calendar"></span></span>
  </div>
  </div>

 <div class="col-md-2">
<label for="exampleInputEmail1">Nights</label>
 <input ng-change="OutDate()" autocomplete="off" ng-model="HotelDetail.Nights" type="text" class="form-control"  placeholder="0">

 </div>
  <div class="col-md-3">
   <label for="exampleInputEmail1">Out Date</label>
   <input readonly ng-model="MyOutdate" autocomplete="off" id="OutDate" class="form-control input-height" placeholder="Date" type="text">

 </div>

JS CODE

 $scope.OutDate = function () {
        var InDate = document.getElementById('InDate').value;
        var reversed = InDate.split('-').reverse().join('-');
        $scope.mydate = new Date(reversed);
        var modified = new Date();
      var nights =  parseInt($scope.HotelDetail.Nights, 10);
      modified.setDate($scope.mydate.getDate() + nights);
      var outdate = modified.toISOString().slice(0, 10);
      var reversedoutdate = outdate.split('-').reverse().join('-');
      $scope.MyOutdate = reversedoutdate;

    }

October Wrong Date

enter image description here


Solution

  • No need to get new date in your scenario

     $scope.OutDate = function () {
            var InDate = document.getElementById('InDate').value;
            var reversed = InDate.split('-').reverse().join('-');
            $scope.mydate = new Date(reversed);
          var nights =  parseInt($scope.HotelDetail.Nights, 10);
          $scope.mydate.setDate($scope.mydate.getDate() + nights);
          var outdate = $scope.mydate.toISOString().slice(0, 10);
          var reversedoutdate = outdate.split('-').reverse().join('-');
          $scope.MyOutdate = reversedoutdate;
    
        }