在下面的代码中,您可以看到填充了unix时间戳的开始和结束数组。
相同的索引(begin [0],end [0])代表一个范围。
现在我的问题是如何在datepicker中禁用这些日期。
我用beforeshow
方法尝试了它,但这只会禁用最后一个范围。
else-block启用之前的日期,但是当我删除它时,有一个例外,我必须返回一个数组。那么如何让datepicker对已经禁用的日期做任何事情呢?
<?php
$db = mysqli_connect("localhost", "root", "", "hmt_db");
$hardwareId=$_POST["hardwareId"];
$abfrage="SELECT lendFrom,lendTill FROM hardware,lending
WHERE hardwareId=$hardwareId
AND HardwareId=hardware_hardwareId";
$from=array();
$to=array();
$i=0;
$ergebnis=mysqli_query($db,$abfrage);
while($row=mysqli_fetch_object($ergebnis)){
$from[$i]=$row->lendFrom;
$to[$i]=$row->lendTill;
}
?>
var begin = <?php echo json_encode($from);?>;
var end = <?php echo json_encode($to);?>;
$(function() {
$( "#from" ).datepicker({
minDate: new Date(),
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
dateFormat: "dd. MM yy",
beforeShowDay: function(date){
var datee = Math.floor(date.getTime()/1000);
var array = new Array;
for(var i = 0;i<begin.length;i++) {
if(datee >= begin && datee <= end || $(this).attr("class")=="ui-state-disabled") {
return [false,""];
} else return [true,""];
}
},
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});