Angular UI の Datepicker を、変数として渡された 2 つの日付の間に制限したいと考えています。これは、この問題の作業プランカーです: 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)
);
注意すべきことの 1 つは、実行するとnew Date()、指定された日付の前日の日付が返されることです。例えば:
$scope.minDate = new Date(
$scope.mymindate
);
$scope.minDate が返される場所Wed Mar 30 2016 17:00:00 GMT-0700 (PDT)4 月 1 日ではなく 3 月 30 日が返される理由を調べたところ、タイムゾーン エラーのように見えますか?
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>