【问题标题】:AngularJS datepicker add to number of dayAngularJS datepicker 添加到天数
【发布时间】:2017-10-18 14:18:03
【问题描述】:

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

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

下面是基本代码: 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/

任何帮助表示赞赏。谢谢

【问题讨论】:

    标签: angularjs datepicker


    【解决方案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

    【讨论】:

    • 太好了,感谢托比。它第一次正常工作,但如果用户随后修改“否”。天的第二次输入,它工作不正确。它开始将天数添加到“结束日期”而不是“开始日期”。我相信这是对此jsfiddle.net/benct/ts70opub/2 的修复
    • 是的,看到更新的答案,那么 endDate 必须是一个额外的变量。
    • 您还应该将 ng-change=updateDate() 添加到日期选择器中!
    • 完成,抱歉我忽略了那个托比
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 2014-03-19
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 2022-10-20
    • 2021-07-15
    相关资源
    最近更新 更多