How do I disable today's date in datepicker after 6:30pm of every using jQuery or in javascript

Viewed 839

Today's date is disabling after 6:00 pm and I need to disable today's after 6:30 pm of every month.

jQuery(function() {

  var hour = new Date().getHours();
  var enableDays = ["5", "10", "15", "20", "25"];

  function enableAllTheseDays(date) {
    var sdate = $.datepicker.formatDate('d', date)
    //console.log(sdate)
    if ($.inArray(sdate, enableDays) != -1) {
      return [true];
    }
    return [false];
  }
  $('#fdDate').datepicker({
    dateFormat: 'yy-mm-dd',
    minDate: hour >= 18 ? 2 : 0,
    beforeShowDay: enableAllTheseDays
  });
})

I need to disable today's date after 6:30 pm of every month

Thanks in advance...

2 Answers

try adding this after hour declaration

let minute = new Date().getMinutes()

Note: I think it would be better if hour and minute get from same new Date(). It's up to you.

then change


minDate: hour >= 18 ? 2 : 0,

to

minDate: (hour >= 18 && minute >= 30) ? 2 : 0,
$("#datepicker" ).datepicker({  
    minDate: 0,
    // Enable only days 5, 10, 15, 20, 25
    beforeShowDay: function(d) {
            var day = d.getDate();
            return [(day == 5 || day == 10 || day == 15 || day == 20 || day == 25)];
    },
    // disable day after 6:30pm
    beforeShow : function(){
        var dateTime = new Date();
        var hour = dateTime.getHours();
        var minute = dateTime.getMinutes();
        if(hour  >= 18 && minute > 30){
            $(this).datepicker( "option", "minDate", "1" );
        }
    }
});

Working example

Related