【问题标题】:Display menu PHP as per timeslot PHP MySQL按时隙显示菜单 PHP PHP MySQL
【发布时间】:2015-02-06 04:41:55
【问题描述】:

我在 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. 如果客户在午餐时间访问餐厅,则只允许订购午餐和晚餐,而不是早餐。

为了得到星期几,我使用下面的方法

$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> } ?>

但上述方法不允许我在早餐时间等时点午餐。

【问题讨论】:

  • 但是为什么他们需要类型转换...比较我工作得很好但这里的问题是玩条件

标签: php mysql


【解决方案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
    }

【讨论】:

  • nops.. 这种方法我试过了,即使在 11:00 之后也可以订购早餐
  • 是的菜鸟...因为今天是星期五。//所以我希望在星期五和星期六显示菜单
  • 我显示的好像数据库中的日期值 === 当天成功。但客户希望这里只有第二天才能看到,而不是所有天
猜你喜欢
  • 1970-01-01
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多