我创建了一个小时范围列表,供用户每天预订房间。这是允许的小时范围。
START HOUR FINISH HOUR
08:00 08:00
09:00 09:00
10:00 10:00
11:00 11:00
12:00 12:00
上面的表单用户输入可能是:
08:00 - 09:00,
08:00 - 10:00,
08:00 - 11:00,
08:00 - 12:00,
09:00 - 10:00,
09:00 - 11:00,
09:00 - 12:00,
10:00 - 11:00,
10:00 - 12:00,
11:00 - 12:00
我当前的脚本只处理最大FINISH HOUR
。因此,如果今天有一本书在08:00 - 10:00,其他用户只能在> = 10:00预订。但是,这里存在一些问题。如果今天有一本书从10:00到11:00,那么其他用户被迫在> = 11:00预订08:00- 09:00或08:00-10:00或09:00 - 10:00免费。怎么处理这个?
这是我目前的剧本:
//CHECK HOURS PER ROOM PER DAY
var url_check = "<?php print base_url(); ?>reservasi_rapat/check_hour";
var val_date = $('#i_tglbook').val(); //date variable
var max_start;
var max_finish;
$.ajax({
url : url_check,
type : 'POST',
dataType : 'json',
data : { date_book : val_date },
async :false,
success : function(data){
max_start = data.book[0]['MAX_JAM_MULAI']; //max start date from DB
max_finish = data.book[0]['MAX_JAM_SELESAI']; //max finish date from DB
}
});
if(max_start != null || max_finish != null){ //book for the first time
var jam_1 = $('#start').find('option:selected').val(); //selected start date
var jam_2 = $('#finish').find('option:selected').val(); //selected end date
var jam_dari = jam_1.split(/:/);
var val_dari = (jam_dari[0] * 3600) + (jam_dari[1] * 60);
var jam_sampai = jam_2.split(/:/);
var val_sampai = (jam_sampai[0] * 3600) + (jam_sampai[1] * 60);
var max_dari = max_jam_mulai.split(/:/);
var val_dari_max = (max_dari[0] * 3600) + (max_dari[1] * 60);
var max_sampai = max_jam_selesai.split(/:/);
var val_sampai_max = (max_sampai[0] * 3600) + (max_sampai[1] * 60);
if(val_dari < val_sampai_max){
alert("Start date must be >= "+max_finish);
$('#start').blur();
$('#start').prop('selectedIndex',0);
}
}