Set Min and Max date from other date picker

I am trying to base an "End Date" range from what is selected in the Start Date. I have the code below and not sure what is wrong with it. Am I missing something?

var today = new Date();
var minDate = today.setDate(today.getDate());
var maxDate = today.setDate(today.getDate()+180);
fd.field('EndDate').widgetOptions = {
min: new Date(minDate),
max: new Date(maxDate)
}

fd.field('StartDate').$on('change', function(value) {
var today = fd.field('StartDate').value;
var minDate = today.setDate(today.getDate()+180);
fd.field('EndDate').widgetOptions = {
min: new Date(today),
max: new Date(minDate)
}
}

Hello @IT.Joe,

Please use Moment.js library to add or subtract date values, like this:

fd.rendered(function() {
$.getScript('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js')
    .then(function() {
        var today = moment(new Date());
        var minDate = new Date()
        var maxDate = today.add(180, 'days').toDate();
        fd.field('EndDate').widgetOptions = {
          min: new Date(minDate),
          max: new Date(maxDate)
        }
      fd.field('StartDate').$on('change', function(value) {
        var today = moment(fd.field('StartDate').value);
        var minDate = today.add(180, 'days').toDate();
        fd.field('EndDate').widgetOptions = {
          min: new Date(fd.field('StartDate').value),
          max: new Date(minDate)
        }
      });
        
})

}); 

Find more information in the Date and Time: calculate difference, adjust values article.

Works great...thank you very much. I have at least 2 other projects this will help tremendously for.

1 Like