2017-07-14 53 views
-1

我使用angular-bootstrap-datetimepicker。我知道如何限制用户输入特定的日期。如何防止用户在datetimepicker中输入特定时间?

$dates.filter(function(date){ 
      return (date.localDateValue() <= new Date().valueOf()-(24*60*60*1000)); 
     }).forEach(function(date){ 
      date.selectable = false; 
     }) 

此代码insode startDateBefore呈现,可防止用户在当前日期之前输入日期24小时。

但现在我希望用户只输入spectic倍。像用户一样,只能选择10:05am to 11:10pm之间的时间。我无法做到这一点。文档没有指定如何将过滤器添加到小时和分钟。任何帮助。

回答

0
date = new Date().valueOf(); 

if(date > 1000*(10*60+5)){ 
    if(date < 1000*(23*60+10)){ 
     //Code green, I repeat, CODE GREEN! 
    } 
} 
+0

感谢您的回答。由于我使用的角度日期时间选择器使用视图(日,小时,分钟)的概念。诀窍在于正确使用视图。 –

1

Angular Date Time Picker,该beforeRender功能也需要参数调用view。所以我们可以使用view==='hour'限制用户输入过去的几小时。我错过了几个小时的代码。

function startDateBeforeRender ($view, $dates, $leftDate, $upDate, $rightDate) {  
    var today = moment().valueOf(); 
    $dates.filter(function (date) { 
    return date.localDateValue() < today -(24*60*60*1000) 
    }).forEach(function (date) { 
    date.selectable = false; 
    }); 


// to restrict hours by admin 
if ($view === "hour") { 
    // restict previous hours 
    $dates.filter(function (date) { 
    return date.localDateValue() < today 
    }).forEach(function (date) { 
    date.selectable = false; 
    }) 

} 
} 
相关问题