在 angular-bootstrap-datetimepicker 中禁用未来日期
disable future dates in angular-bootstrap-datetimepicker
我无法禁用未来日期。
使用angular-bootstrap-datetimepicker
<datetimepicker data-ng-model="user.join_date" data-datetimepicker-config="{ startView:'day', minView:'day' }" />
尝试在指令的 DateObject()
中添加 this.future = false;
但没有成功...
编辑
发现我可以使用 before-render
然后为将来的日期制作 selectable=false;
。
正在努力实施。
感谢您的帮助!
完成了。
使用 beforeRender
功能并禁用未来日期与当前日期比较 utcDateValue
。
代码如下:
$scope.beforeRender = function ($dates) {
/* disable future dates */
for(var i=0; i<$dates.length;i++) {
if(new Date().getTime() < $dates[i].utcDateValue) {
$dates[i].selectable = false;
}
}
};
也添加了data-before-render="beforeRender($dates)"
<datetimepicker data-ng-model="user.join_date" data-datetimepicker-config="{ startView:'day', minView:'day' }" data-before-render="beforeRender($dates)" />
只允许未来
我需要稍微复杂一点的完全相反的要求,只允许将来的日期你需要考虑参数 $view
Javascript:
$scope.futureOnlyBeforeRender = function($view, $dates) {
// $view values: year, month, day, hour, minute
var currentDate = new Date();
// set the current date according to the view
switch($view){
case 'year': currentDate.setYear(currentDate.getYear() - 1); break;
case 'month': currentDate.setMonth(currentDate.getMonth() - 1); break;
case 'day': currentDate.setDate(currentDate.getDate() - 1); break;
case 'hour': currentDate.setHours(currentDate.getHours() - 1); break;
case 'minute': currentDate.setMinutes(currentDate.getMinutes() - 1); break;
}
// apply ot the dates
$dates.filter(function (date) {
return date.utcDateValue < currentDate.getTime();
}).forEach(function (date) {
date.selectable = false;
})
};
HTML:
data-before-render="futureOnlyBeforeRender($view, $dates)"
我无法禁用未来日期。
使用angular-bootstrap-datetimepicker
<datetimepicker data-ng-model="user.join_date" data-datetimepicker-config="{ startView:'day', minView:'day' }" />
尝试在指令的 DateObject()
中添加 this.future = false;
但没有成功...
编辑
发现我可以使用 before-render
然后为将来的日期制作 selectable=false;
。
正在努力实施。
感谢您的帮助!
完成了。
使用 beforeRender
功能并禁用未来日期与当前日期比较 utcDateValue
。
代码如下:
$scope.beforeRender = function ($dates) {
/* disable future dates */
for(var i=0; i<$dates.length;i++) {
if(new Date().getTime() < $dates[i].utcDateValue) {
$dates[i].selectable = false;
}
}
};
也添加了data-before-render="beforeRender($dates)"
<datetimepicker data-ng-model="user.join_date" data-datetimepicker-config="{ startView:'day', minView:'day' }" data-before-render="beforeRender($dates)" />
只允许未来
我需要稍微复杂一点的完全相反的要求,只允许将来的日期你需要考虑参数 $view
Javascript:
$scope.futureOnlyBeforeRender = function($view, $dates) {
// $view values: year, month, day, hour, minute
var currentDate = new Date();
// set the current date according to the view
switch($view){
case 'year': currentDate.setYear(currentDate.getYear() - 1); break;
case 'month': currentDate.setMonth(currentDate.getMonth() - 1); break;
case 'day': currentDate.setDate(currentDate.getDate() - 1); break;
case 'hour': currentDate.setHours(currentDate.getHours() - 1); break;
case 'minute': currentDate.setMinutes(currentDate.getMinutes() - 1); break;
}
// apply ot the dates
$dates.filter(function (date) {
return date.utcDateValue < currentDate.getTime();
}).forEach(function (date) {
date.selectable = false;
})
};
HTML:
data-before-render="futureOnlyBeforeRender($view, $dates)"