如何在JQuery或PHP中处理几个小时的范围?

时间:2017-11-14 02:47:37

标签: javascript php jquery ajax

我创建了一个小时范围列表,供用户每天预订房间。这是允许的小时范围。

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);
        }                   
    }

0 个答案:

没有答案