目前,我有这个自定义功能:
var $myBadDates = new Array(<?php foreach($aryDates as $disabledate) { echo ' "$disabledate",'; } echo " 1"; ?>);
// Creates the array (The echo " 1"; is merely to close the array and will not affect the outcome
function checkAvailability(mydate) {
var $return = true;
var $returnclass = "available";
$checkdate = $.datepicker.formatDate('yy-mm-dd', mydate);
for (var i = 0; i < $myBadDates.length; i++) {
if ($myBadDates[i] == $checkdate) {
$return = false;
$returnclass = "unavailable";
}
}
return [$return, $returnclass];
}
datepicker部分如下:
$(function () {
//To enable End Date picker only when Start Date has been chosen (And to disable all dates prior of said date)
var end = $('#enddate').datepicker({
numberOfMonths: 3,
stepMonths: 3,
beforeShowDay: checkAvailability
});
// Defining a function, because we're binding this to two different events
function enableEnd() {
end.attr('disabled', !this.value.length) // Enable the end input element if the first one has anything in it
.datepicker('option', 'minDate', this.value); // Set the minimum date to the date in the first input
}
//End of function
// Datepicker
$('#startdate').datepicker({
numberOfMonths: 3,
stepMonths: 3,
beforeShowDay: checkAvailability,
minDate: +1,
onSelect: enableEnd // Call enableEnd when a date is selected in the first datepicker
}).bind('input', enableEnd); // Do the same when something is inputted by the user
//hover states on the static widgets
$('#dialog_link, ul#icons li').hover(
function () {
$(this).toggleClass('ui-state-hover');
});
});
//End of Function
我所做的是从我的SQL DB中,我使用自定义函数将开始日期和结束日期更改为日期数组,然后将其推送到单个数组中并用于禁用所述日期。 />
第二个日期选择器仅在第一个有效日期返回为TRUE
时启用。
现在的问题是:
我可以阻止我必须的所有日期。大。但是现在,我如何在这周围阻止周末?
beforeShowDay: $.datepicker.noWeekends
无法正常工作,因为我已经在使用自定义函数。所以,我必须进一步自定义我的自定义功能。我不能使用getDate()并显示那些&gt;比0和&lt; 7,那我怎么解决这个问题呢?
任何帮助,即使是小费的回答也会有所帮助。我已经尝试了一段时间,但我还没有到任何地方。感谢。
答案 0 :(得分:1)
似乎相当简单,但我不明白为什么你不能使用getDay()
函数:
function checkAvailability(d) {
if (
d.getDay() == 6 /* saturday */ ||
d.getDay() == 0 /* sunday */
) {
return [false,'unavailable unavailable-cuz-its-weekend'];
}
$checkdate = $.datepicker.formatDate('yy-mm-dd', d);
for (var i = 0; i < $myBadDates.length; i++) {
if($myBadDates[i] == $checkdate)
{
return [false, "unavailable"];
}
}
return [true, "available"];
}