繁体   English   中英

PHP / MySQL中的预订日期可用性范围

[英]Booking Dates Availability Ranges in PHP/MySQL

我有两个字段,check_in和nights。

房晚包括入住日期。 因此,如果客户预订1晚,那么他将在第二天退房,然后房间就可以预订了(除非已经有人预订了)。

这是我表中几个记录的示例,

customer          room            check_in            nights
cus1              test room       2013-01-23          2
cus2              test room       2013-01-25          1
cus3              test room       2013-01-26          4

cus3已经预订了房间,他们将在2013-01-26入住该房间,并且将入住4晚。 这意味着在此期间该房间将无法预订。

那么我如何检查房间是否可用?

房间只能在2013年1月30日入住。

感谢所有帮助:)

当您获得客户行的数据时,使用此方法来获取结帐日期:

$check_out = date('Y-m-d', strtotime($row['check_in'].' + '.$row['nights'].' days'));

像这样

SELECT room, 
       CASE WHEN 'dateHere' BETWEEN check_in AND check_out
           THEN 'UNAVAILABLE'
           ELSE 'AVAILABLE'
       END Status
FROM
  (
      SELECT  room, 
              check_in, 
              DATE_ADD(check_in, INTERVAL nights day) check_out
      FROM    booking
  ) s

有一个很棒的网站,列出了常见情况的MySQL语句。 检查房间在给定时间内是否可用是其中之一: http : //www.artfulsoftware.com/infotree/queries.php#576

当您选择入住日期和夜晚时,您可以执行以下操作(虚拟代码):

    $startDate='2013-01-26';//for example
    $to_time=date("Y-m-d", strtotime("$startDate + 4 day"));
    echo $to_time;//prints 2013-01-30

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM