jQuery Datepicker在截止时间后显示日期

时间:2018-03-19 22:18:38

标签: jquery datepicker

我无法弄清楚这一点,我正在努力实现交付的截止时间。我使用美国东部时间下午3点或UTC时间截止时间截止时间。然而,它似乎并不总是有效,并且允许用户在19 UTC之后的第二天选择。我哪里做错了?请参阅下面的代码:

   $("#delivery_date").datepicker( {
  minDate: minDate,
  maxDate: '+3M',
  beforeShow : function(){
    var dateTime = new Date();
    var hour = dateTime.getUTCHours()
    //If Hour is greater or equals to 3PM
    if(hour  >= 19){
        //Disable all past days including tomorrow and today
        $(this).datepicker( "option", "minDate", "+2" );
    }
}

1 个答案:

答案 0 :(得分:0)

如上所述,Javascript是基于用户的日期和时区的。

如果要添加截止时间,首先必须知道时区的时间,然后将其应用于日期选择器,然后根据您的时区应用截止时间!

我建议您看看moment.js library,发现这种问题对我很有帮助。

我的TZ是奥克兰太平洋地区,但是您可以轻松地将其更改为所需的TZ。

// Jquery Datepicker
var setDate = moment.tz('Pacific/Auckland');
jQuery("#getdate").datepicker({
minDate: checkTime(), // set min date based on NZ timezone time
dateFormat: 'dd-mm-yy',
    defaultDate: setDate.format('dd-mm-yy'), // get from moment above
    numberOfMonths: 1,
    buttonText: "Choose Date",
    showButtonPanel: true
  });

Full code here on jsfiddle that might help you