gpt4 book ai didi

javascript - 关于 php/javascript 中的日期选择器

转载 作者:行者123 更新时间:2023-12-03 11:49:44 25 4
gpt4 key购买 nike

我有一个 javascript jquery 日期选择器,目前仅允许您根据数据库中的日期选择日期,并且仅允许您选择当前日期(如果它不在数据库中作为假期) 。周末也被禁用。

我现在想做的只是允许用户在日期选择器上从数据库中选择一天+1。

我显然已经取出了输入数据库的最新日期并加了1,所以这是我只想可供选择的日期...但是如果第二天是禁用日怎么办从其他假期日期?我可以用哪种方法来解决这个问题并且实际上只显示一个?对我的假期有条件吗?

我的 javascript jquery 日期选择器 atm:

 <script type="text/javascript">

// Holiday Dates
var unavailableDates =
[<?php

while($date = mysqli_fetch_assoc($execute)) {

// Populating javascript array with the dates from database
echo '"' . $date = date('Y-n-j', strtotime($date['holiday_date'])) . '"';

// Adding a comma in array
if ( $i < $number) {
echo ',';
}
$i ++;
}
?>
];

// Entered Dates
var unavailableEnteredDates =
[<?php

while($dateEntered = mysqli_fetch_assoc($executeQuery)) {
// Populating javascript array with the dates from database
echo '"' . $dateEntered = date('Y-n-j', strtotime($dateEntered['totalsDate'])) . '"';

// Adding a comma in array
if ( $y < $number2) {
echo ',';
}
$y ++;
}
?>
];

// Concatenented array of 2 above
var allUnavailableDates = unavailableDates.concat(unavailableEnteredDates);

// Sets the no weekends and specified holiday dates
function noWeekendsOrHolidays(date) {
var noWeekend = jQuery.datepicker.noWeekends(date);
return noWeekend[0] ? holidays(date) : noWeekend;
}

// Gets the holidays
function holidays(date) {
dmy = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
if ($.inArray(dmy, allUnavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Holiday Date"];
}

}

// Setting up the Date Picker
$(function() {
$("#datepickerUser").datepicker({
dateFormat: 'yy-m-d',
beforeShowDay: noWeekendsOrHolidays,
maxDate: "+0d"
});
$(function() { ("#testButton").datepicker("show") });

});

我想出的解决方案:

          //    Adding one to the day so we can display this
$latestPlusOne = date('Y-n-j', strtotime( "$latestDate + 1 day" ));
$availableTakingDate;

// This for loop will loop through the size of the array
// Each time it finds the date inside the array it will plus 1 to the date
// Otherwise, break out of the loop and the new date var will be an available one
for ($i = 0; $i <= count($dateArray); $i++) {
if (in_array($latestPlusOne, $dateArray)) {

$latestPlusOne = date('Y-n-j', strtotime( "$latestPlusOne + 1 day" ));
} else {
$availableTakingDate = $latestPlusOne;
break;
}
}
?>


<script type="text/javascript">

// Date :: wanted available
var availableDate = <?php echo json_encode($availableTakingDate); ?>;

function displayDate(date) {
dmy = date.getFullYear() + "-" + (date.getMonth() +1) + "-" + date.getDate();

if (dmy == availableDate) {
return [true, ""];

} else {
return [false, ""];
}
}

// Setting up the Date Picker
$(function() {
$("#datepickerUser").datepicker({
dateFormat: 'yy-m-d',
beforeShowDay: displayDate,
maxDate: "+0d"
});
$(function() { ("#testButton").datepicker("show") });

});

最佳答案

日期选择器不可能知道您所在国家/地区的假期。您需要实现自己的编程逻辑 - 定义您所在国家/地区一年中的假期并计算第二天。当假期列表中找到第二天时,将日期扩展至 +1 天。

关于javascript - 关于 php/javascript 中的日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25900727/

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