PathOfNeo
PathOfNeo

Reputation: 1089

timepicker disable time before current time

I'm using this jquery time picker: http://jonthornton.github.io/jquery-timepicker/

which gives out of the box a dropdown on input, with hours incremented by 30 min, which is exactly what I need.

How can I disable all times before the current time in the time picker?

If, for example, current time is 04:10 PM, then all values before 04:30 should be disabled.

The API only provides this info:

disableTimeRanges Disable selection of certain time ranges. Input is an array of time pairs, like `[['3:00am', '4:30am'], ['5:00pm', '8:00pm']]. The start of the interval will be disabled but the end won't. default: []

Existing code:

 var timeOptions = {
        'timeFormat': 'h:i A'
    };
    $('#pickTime').timepicker(timeOptions);

Upvotes: 2

Views: 15006

Answers (2)

Pete
Pete

Reputation: 58462

try this:

function getCurrentTime(date) {
    var hours = date.getHours(),
        minutes = date.getMinutes(),
        ampm = hours >= 12 ? 'pm' : 'am';

  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;

  return hours + ':' + minutes + ' ' + ampm;
}

var timeOptions = {
        'timeFormat': 'h:i A',
        'disableTimeRanges': [['12am', getCurrentTime(new Date())]]
    };

or you could use min time:

var timeOptions = {
    'timeFormat': 'h:i A',
    'minTime': getCurrentTime(new Date())
};

Upvotes: 5

M&#225;rcio Gonzalez
M&#225;rcio Gonzalez

Reputation: 1040

Try using minDate property like this:

$(function () {
    $("#date").datepicker({ minDate: 0 });
});

Upvotes: 0

Related Questions