我现在有一个mysql数据库,里面有预订。它有到达日期和离开日期。我正在寻找一种方法,让它显示从每个预订到日历中的名字,在他们逗留期间的所有日子,所以它可以很容易地查看。至少一个关于如何处理这一问题的提纲将不胜感激。
谢谢!
目前,我有以下数据来计算他们的所有逗留天数:
$period = new DatePeriod(
new DateTime($row['ArrivalDate']),
DateInterval::createFromDateString('+1 day'),
new DateTime($row['DepartureDate'])
);
foreach ( $period as $dt ) {
echo $dt->format( 'd-m-Y' ) . "\n";
}
1条答案
按热度按时间8oomwypt1#
初始样本数据:
概要是:您可以每月通过一次sql查询来获取所需的数据,但我采用了不同的方法。在php中,获取要显示的月份(如果未提供,则为当前月份)。算出那个月的第一天和最后一天——做一个句号。对于期间的每一天,获取当天有效的预订。现在您已经拥有了一个月中的所有日期以及每天的所有预订,您可以根据需要显示它。还可以计算上一个月和下一个月并显示此信息,以便您可以浏览下一个月/上一个月。
我是作为一个脚本来做的,它接受一个月作为参数,如果没有提供参数,它将显示当前月份。
你这样称呼它:
file.php
并得到如下输出(无参数-当月输出):的内容
$monthData
:如您所见,它是一个包含30个元素的数组(一个月中的每一天一个元素)。每个元素都包含一个日期和这一天的预订,所以现在可以很容易地根据需要显示它(例如html)。
如果你想看下个月的节目,可以这样说:
file.php 2020-08
您将得到以下输出:如果你想要浏览器版本只需通过
YYYY-MM
通过链接参数的参数。如果要从日历中排除出发日期,请修改查询departureDate > :date