希望日期开始结束于while循环中的一个房间id的一个数组
want date start to end in while loop in one array for one room id
我想在日历上显示已预订的酒店房间的不可用日期,但我只能显示一个日期,但希望显示当月预订的所有日期,一个是20-25,第二个是29-31…
echo $query = "SELECT * FROM booking_request where room_id = 1' '<br>' ";
$result = $db->query($query);
if( $result -> num_rows > 0 ) {
while( $row = $result-> fetch_assoc() )
{
echo $name = $row['getaway_name']." <br>";
echo $start = $row['check_in_date']." <br>";
echo $end = $row['check_out_date']." <br>";
$cp = array();
$arr1 = range(strtotime($row['check_in_date']),strtotime($row['check_out_date']), "86400");
array_walk_recursive($arr1, function(&$element) { $element = date("d-n-Y", $element); });
print_r ($arr1);
}
我正在获取中的所有日期
Array (
[0] => 15-5-2016
[1] => 16-5-2016
[2] => 17-5-2016
[3] => 18-5-2016
[4] => 19-5-2016
[5] => 20-5-2016
)
Array (
[0] => 29-5-2016
[1] => 30-5-2016
[2] => 31-5-2016
)
就像while循环中的这个,我希望这个在单个数组中。。
无论您是否需要,数组总是有键的。即使是简单的array('15-5-2016', '16-5-2016');
也将是array([0] => '15-5-2016', [1] => '16-5-2016');
。也就是说,您的数组确实以0开头,而不是以1开头。
如果您只想要值,那么您必须在想要使用此数组的地方使用循环(我建议使用foreach)。所以您将从数组中获取值。
第一个merage数组都像这个
$arr1[] = range(strtotime($row['check_in_date']),strtotime($row['check_out_date']), "86400");
在数组的foreach循环之后。
我已经编辑了以前的答案,并使用了数组中的信息。
这是您的数组的示例:新示例!
<?php
$date = date("Y-m-d");
$time=strtotime($date);
$month=date("m",$time);
$year=date("Y",$time);
$end = $year. "-" . $month . "-" . date('t', strtotime($date));
$datebooked=array ('2016-05-15', '2016-05-16', '2016-05-17', '2016-05-18', '2016-05-19', '2016-05-20');
$datebooked1=array('2016-05-29', '2016-05-30', '2016-05-31');
$datesbooked=array_merge($datebooked, $datebooked1);
?>
<table>
<tr>
<?php while(strtotime($date) <= strtotime($end)) {
$day_num = date('d', strtotime($date));
$day_name = date('l', strtotime($date));
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
if(in_array("".$year."-".$month."-".$day_num, $datesbooked)){
echo "<td style='color:red;'>$day_num <br/> $day_name</td>";
}else{
echo "<td style='color:blue;'>$day_num <br/> $day_name</td>";
}
}
?>
</tr>
</table>
您必须更改范围数组的变量。使用类似的东西:
$count=0;
while($count!==$result->num_rows()){
$count++;
${arr.$count}=range(strtotime($row['check_in_date']),strtotime($row['check_out_date']), "86400");;
}
然后,您可以将每个数组读取为:$arr1、$arr2、$arr3
然后作为我代码中的第9行:
$datesbooked=array_merge($arr1, $arr2, $arr3);
相关文章:
- 引导程序日期时间选择器来自另一个日期时间选择器
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 从上一个日期创建日期并添加到该日期
- 从另一个日期选择器中选择另一个值后,获取日期选择器的起始值
- Onsen UI在点击时显示一个日期选择器
- 有可能做一个日期&使用jquery ui的时间日历
- jquery日期选择器-选择时激活另一个日期选择器
- 使用jquery以dd-mmm-yyyy格式获取给定日期后的第一个日期和最后一个日期
- 给一个日期加两个小时
- 计算特定日期's将日期更改为另一个日期,并打印它们的差异
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- 计算当天和另一个日期之间的差额时出现错误差异
- jQuery UI 日期选择器:向另一个日期选择器添加 6 个月
- 如何在没有周末的情况下添加天数以从当前日期获取下一个日期
- 每当我在 jquery UI 日期选择器中更改月份/年份时,如何获取该月的第一个日期和最后一个日期
- 给定一个日期/时间字符串,w javascript/jquery,你怎么能确定它是否是今天
- 将当前日期与 JavaScript 上的另一个日期时间进行比较
- 如何在引导日期设置每月的第一个日期和最后一个日期
- 如何使用另一个日期输入字段将日期设置为输入字段
- Ajax 日历扩展器不选择上一个日期