我想将 Angular UI Datepicker 限制在作为变量传入的两个日期之间。这是解决此问题的有效方法: http ://plnkr.co/edit/zsjpoVZtHqJLIP2RW6vm?p=preview
这里是变量:
mycurrentdate = '2016-04-15'
mymindate = '2016-04-01'
mymaxmonth = '2016-05-01'
我的实际最大日期将是 mymaxmonth 的末尾,所以在这种情况下:'2016-05-31'
$scope.maxDate = new Date(
$scope.mymaxmonth + (TO THE END OF THE MONTH)
);
需要注意的一件事是,运行它会new Date()
返回一个日期,即给定日期的前一天。例如:
$scope.minDate = new Date(
$scope.mymindate
);
$scope.minDate 在哪里返回Wed Mar 30 2016 17:00:00 GMT-0700 (PDT)
我查找了它返回 3 月 30 日而不是 4 月 1 日的原因,这似乎是一个时区错误?
我想将 mymindate 设置为 '2016-04-01' 并获取 mymaxdate = '2016-05-31' 并禁用此范围之外的所有日期。我特别想弄清楚如何到月底。javascript中有一些 endofmonth() 函数吗?
在控制器中我有:
$scope.mymindate = '2016-04-01';
$scope.mymaxmonth = '2016-05-01'; //want mymaxdate to be '2016-05-31'
$scope.minDate = new Date(
$scope.mymindate
);
$scope.maxDate = new Date(
$scope.mymaxmonth + 1
);
在模板中我有:
<p class="input-group">
<input type="text" class="form-control" uib-datepicker-popup="{{format}}" ng-model="dt" is-open="popup1.opened" min="minDate" max="maxDate" datepicker-options="dateOptions" ng-required="true" close-text="Close" alt-input-formats="altInputFormats" />
<span class="input-group-btn">
<button type="button" class="btn btn-default" ng-click="open1()"><i class="glyphicon glyphicon-calendar"></i></button>
</span>
</p>