7

I am working on some project based on Twitter Bootstrap which using a datepicker from https://github.com/eternicode/bootstrap-datepicker (that is a fork from some other version), but it's missing a very important feature that I need - how to enable only specific date range (eg. from past 15 days till today), so any other date can't be even selected (not clickable).

I found a similar solution here on SO, which disables Saturdays and Sundays: Limit bootstrap-datepicker to weekdays only? http://jsfiddle.net/katowulf/zNbUT/5/ , but I dont know how to adjust it to my needs.

Thanks in advance.

4

2 回答 2

14

The similar question you linked to ended up using quite a hack, but what you want is a lot simpler -- you're looking for the startDate and endDate options:

$('#dp1').datepicker({
    format: 'mm-dd-yyyy',
    startDate: '-15d',
    endDate: '+0d' // there's no convenient "right now" notation yet
});

These options can take Date objects, timedelta strings (as I did here), or date strings following the given format.

Demo: http://jsfiddle.net/zNbUT/131/

Also, make sure you're using the code from github -- eyecon.ro's copy is the original code, with old bugs and without the newer features.

于 2012-10-02T19:11:37.297 回答
3
var startDate = new Date();
startDate.setDate(startDate.getDate()-15);

var endDate = new Date();

$('#dp1')
.datepicker().on('changeDate', function(ev){
    if (ev.date.valueOf() > endDate.valueOf()){
       alert('The date selected is too far in the future.');
    } else if (ev.date.valueOf() < startDate.valueOf()){
        alert('The date selected is too far in the past');
    } else {
        alert('fine')
    }

});

http://jsfiddle.net/XSmx6/14/

于 2012-09-29T12:32:27.127 回答