gpt4 book ai didi

php - 我的日期选择器系统出现问题(禁用日期)

转载 作者:行者123 更新时间:2023-12-01 02:39:00 26 4
gpt4 key购买 nike

我的预订系统有一个日期选择器,但它不适用于 1 个示例。我有 2 个日期供员工填写。如果我保存入住日期(月/日/年)01/01/2020,退房日期为 01/05/2020。然后如果我想编辑预订数据。我无法将退房日期更改为 01/03/2020,因为 1 到 5 现在是禁用日期。

我的问题是是否有人知道如何处理这个问题。也许我需要为另一个系统编写代码来仅处理禁用的日期。但我想知道是否有人知道如何仅使用日期选择器来做到这一点。我更喜欢这样。

我使用 flatPickr 作为 Jquery 的日期选择器。我使用 PHP 从数据库获取禁用日期,并将其作为数组加载到日期选择器的禁用日期函数中。

请告诉我您的想法,如果您有任何建议和提示,也可以回复我。

感谢您的宝贵时间

HTML 代码

<div class="form-group row">
<label for="date" class="col-4 col-form-label">Check in</label>
<div class="col-8">
<input id='from1' type='text' name='dateFrom1' data-date="" class='form-control datepickerChange' placeholder="Open date-picker" autocomplete="off" />
</div>
</div>
<div class="form-group row">
<label for="date" class="col-4 col-form-label">Check out</label>
<div class="col-8">
<input id='to1' type='text' name='dateTo1' data-date="" class='form-control datepickerChange' placeholder="Open date-picker" autocomplete="off" />
</div>
</div>

日期选择器代码 jquery.来自数据库的日期和代码以获取两个日期之间的全天,并放置在带有变量 $strBlockA

disable[] 函数中
 $('#from1').flatpickr({
onChange: function(selectedDates, dateStr, instance) {
endPicker.set('minDate', selectedDates[0]);
},

allowInput: true,
dateFormat: "m/d/yy",
disable: [<?php echo implode(',',array_unique(explode(',', $strBlockA))); ?>],
});

endPicker = flatpickr("#to1", {
allowInput: true,
dateFormat: "m/d/yy",
disable: [<?php echo implode(',',array_unique(explode(',', $strBlockA))); ?>],

});

从数据库中获取日期并获取其间所有日期的代码

  //Camping Block A
$sql = "SELECT dateFrom,dateTo from campinginformation WHERE dateFrom IS NOT NULL AND dateTo IS NOT NULL AND dateFrom != '' AND dateTo != '' AND chooseCamping = 'Caravan of camper (kleine plaats)'";
$statement = $connect->prepare($sql);
$success = $statement->execute();

$strBlockA = '';
while ($output = $statement->fetch(PDO::FETCH_ASSOC)) {

// Specify the start date. This date can be any English textual format
$date_from = $output["dateFrom"];
$date_from = strtotime($date_from); // Convert date to a UNIX timestamp

// Specify the end date. This date can be any English textual format
$date_to = $output["dateTo"];
$date_to = strtotime($date_to); // Convert date to a UNIX timestamp

// Loop from the start date to end date and output all dates inbetween
for ($i=$date_from; $i<=$date_to; $i+=86400) {
$strBlockA .= "'".date("m-d-y", $i)."',";
}

}


$strBlockA .= rtrim($strBlockA,",");

最佳答案

这就是我要做的。我会尝试解释一下,因为我不知道您完整的数据库设置。

您的查询是从系统中选取所有保留的日期。

$sql = "SELECT dateFrom,dateTo from campinginformation WHERE dateFrom IS NOT NULL AND dateTo IS NOT NULL AND dateFrom != '' AND dateTo != '' AND chooseCamping = 'Caravan of camper (kleine plaats)'";

我假设每一行也有一个 ID?

您应该从此查询中排除当前预订(正在编辑的预订)的 ID,这样可以释放可用的日期。

所以像这样:

$thisReservation = 0; //get the reservation ID of the one being edited

$sql = "SELECT dateFrom,dateTo from campinginformation WHERE dateFrom IS NOT NULL AND dateTo IS NOT NULL AND dateFrom != '' AND dateTo != '' AND chooseCamping = 'Caravan of camper (kleine plaats)' AND ReservationID !== $thisReservation";

希望这有帮助。

关于php - 我的日期选择器系统出现问题(禁用日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59918403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com