2017-10-18 92 views
0

我有一个包含'开始日期'和'持续时间'字段的AngularJS表单,并且我需要根据用户输入到这两个字段中的内容来计算'结束日期',即 结束日期=开始日期+天数AngularJS datepicker添加到天数

但我努力将它们转换为正确的数字格式来正确计算'结束日期'。

以下是基本代码: HTML

<div ng-controller="MyCtrl"> 
    <p>Start Date: <md-datepicker ng-model="date" md-placeholder="Enter date" > 
    </md-datepicker></p> 
<p>No of days:<input ng-model="noDays" type="number"></p> 
<p>End Date: {{date+ noDays}}</p> 
</div> 

JS

var app = angular.module('myApp', ['ngMaterial', 'ngAnimate']); 
app.controller('MyCtrl', function($scope) { 
    $scope.date = new Date(); 
}); 

而且这里的jsfiddle https://jsfiddle.net/benct/n6jwj61s/

赞赏任何帮助。由于

回答

1

看到这里this答案

只需写写updateDate功能,增加了天:

<div ng-controller="MyCtrl"> 
    <p>Start Date: <md-datepicker ng-model="date" md-placeholder="Enter date" ng-change='updateDate()'> 
    </md-datepicker></p> 
<p>No of days:<input ng-model="noDays" type="number" 
       ng-model-options='{ debounce: 1000 }' 
       ng-change='updateDate()'></p> 
<p>End Date: {{enddate}}</p> 
</div> 

JS

$scope.date = new Date(); 
$scope.enddate = new Date(); 
$scope.noDays = 0; 
$scope.updateDate = function() { 
    $scope.enddate.setDate($scope.date.getDate() + $scope.noDays); 
} 

Fiddle

+0

太好了,谢谢托比这一点。它在第一次正常工作,但如果用户然后修改'不。第二次输入的天数,它的工作不正确。它开始将天数添加到“结束日期”而不是“开始日期”。我相信这是对此https://jsfiddle.net/benct/ts70opub/2/ – BENCT

+0

的修补程序是的,请参阅更新后的答案,endDate必须是一个额外的变量。 – Tobi

+0

您还应该将ng-change = updateDate()添加到日期选择器中! – Tobi