Twitter bootstrap 引导日期选择器、beforeShowDay和禁用日期数组

Twitter bootstrap 引导日期选择器、beforeShowDay和禁用日期数组,twitter-bootstrap,datepicker,bootstrap-datepicker,Twitter Bootstrap,Datepicker,Bootstrap Datepicker,我正在尝试使用bootstrap datepicker plugin(),其中包含一系列已禁用的天数 我的代码(部分): 它工作(几乎)正常。它禁用了错误的日期。它没有在2014年3月23日禁用,而是在2014年4月24日禁用。 我不确定问题出在哪里,可能是时区?有什么建议吗?查看插件内部,我发现$.fn.datepicker.DPGlobal.formatDate返回UTC格式的字符串而不是GMT。请尝试将formattedDate变量的设置更改为: var formattedDate = d

我正在尝试使用bootstrap datepicker plugin(),其中包含一系列已禁用的天数

我的代码(部分):

它工作(几乎)正常。它禁用了错误的日期。它没有在2014年3月23日禁用,而是在2014年4月24日禁用。
我不确定问题出在哪里,可能是时区?有什么建议吗?

查看插件内部,我发现
$.fn.datepicker.DPGlobal.formatDate
返回UTC格式的字符串而不是GMT。请尝试将formattedDate变量的设置更改为:

var formattedDate = date.toLocaleDateString('pl',{day:'2-digit',year:'numeric',month:'2-digit'});

您只需要删除行“startDate:“+1d”,当您有可用的日期数组时,使用它没有任何意义。无论如何,您可以添加新的Date()函数来获取任意日期

它将是这样的:

 //here you store new Date() Object to get today's date formatted as you want dd.mm.yyy

 var disabled_dates = ["23.03.2014","21.03.2014"];
 $("#datepicker").datepicker({
      language: "pl",
      autoclose: true,
      //removed line: startDate: '+1d',
      weekStart: 1,
      default: 'dd.mm.yyyy',
      beforeShowDay: function(date){
           var formattedDate = $.fn.datepicker.DPGlobal.formatDate(date, 'dd.mm.yyyy', 'pl');
           if ($.inArray(formattedDate.toString(), disabled_dates) != -1){
               return {
                  enabled : false
               };
           }
          return;
      }
  });

我也有同样的问题。被接受的答案只在IE11+中有效,所以我仍然在寻找答案。StartDate是不相关的。我发现发生这种情况是因为它将日期转换为UTC,如果您在我们的时区,这将使所有日期在时间上倒退一天。我还不知道怎么修。。
 //here you store new Date() Object to get today's date formatted as you want dd.mm.yyy

 var disabled_dates = ["23.03.2014","21.03.2014"];
 $("#datepicker").datepicker({
      language: "pl",
      autoclose: true,
      //removed line: startDate: '+1d',
      weekStart: 1,
      default: 'dd.mm.yyyy',
      beforeShowDay: function(date){
           var formattedDate = $.fn.datepicker.DPGlobal.formatDate(date, 'dd.mm.yyyy', 'pl');
           if ($.inArray(formattedDate.toString(), disabled_dates) != -1){
               return {
                  enabled : false
               };
           }
          return;
      }
  });