按时间段PHP MySQL显示菜单PHP

时间:2015-02-06 04:41:55

标签: php mysql

我在MySQL DB中有一个表,它存储了餐厅在每个工作日和时间段提供的菜单。

表结构如下:

i_type      i_name    i_cost   i_day   i_start     i_end
--------------------------------------------------------
Breakfast   Prantha   20         0      07:00      11:00
Lunch       Special   80         0      11:01      15:00
Dinner      Special   100        0      15:01      21:00

其中0 =星期天等等。

例如早餐(07:00至11:00),午餐(11:01至15:00)

现在,每周的菜单显示完全正常。但我想按照以下方法显示菜单:

  1. 如果客户在早上时间(即早餐或早餐时间)进入餐厅,则可以订购早餐,午餐和晚餐。
  2. 如果顾客在午餐时间进入餐厅,则只允许订购午餐和晚餐,而不是早餐。
  3. 要获得星期几,我正在使用以下方法

    $jd=cal_to_jd(CAL_GREGORIAN,date("m"),date("d"),date("Y"));
    $dw = (jddayofweek($jd,0));
    

    目前我正在处理时间段如下:

    $datr = (int)date('Hi');
    $timew= str_replace(':', '', $row['i_start']); $timec= str_replace(':', '', 
    $row['i_end']);
    if (($datr < $timew) || ($datr > $timec)) { ?>
    <button class="btn btn-default" style="background:#ED3E49;border-color: 
    #E31522;color:#fff;padding:5px;border-radius:5px" disabled="disabled">
    &nbsp;Ordering Closed</button> } ?>
    

    但上述方法并不是让我在早餐时间点午餐等等。

1 个答案:

答案 0 :(得分:1)

试试这个:

    $dayValueFromDB = $row['i_day'];
    $jd=cal_to_jd(CAL_GREGORIAN,date("m"),date("d"),date("Y"));
    $currentDayValue = (jddayofweek($jd,0));
    //for just today and tomorrow the last condition in if is for the senario if today in saturday and tomorrow is sunday
    if($dayValueFromDB == $currentDayValue || $dayValueFromDB == ($currentDayValue+1) || ($dayValueFromDB == 0 && $currentDayValue==6))   
    if ($datr > $timec){
        //your code
    }
    }
else{
    //for all other days display no order will be taken or whatever you like
    }