У меня есть система календаря, которую я написал для системы бронирования, которая через ajax циклически перебирает дни месяца и отображает их, показывая доступные слоты для каждого дня каждого месяца для каждого года. Для текущего года отображаются только доступные месяцы, включая текущий месяц.
Теперь я попытался изменить сценарий, чтобы отображать «Закрытое бронирование» для текущего дня и прошедших дней текущего месяца текущего год.
Проблема, с которой я столкнулся сейчас, заключается в том, что я не могу заставить ее работать так, как хочу.
Думая об этом, логика c заключается в том, что если это текущий год и текущий месяц, то текущие дни и прошедшие дни должны читаться как «Закрыто бронирование», поэтому я создал условное «если» блок, в котором указано, что для текущего года и текущего месяца прошедшие дни должны отображаться как «Закрыто бронирование», но должны быть доступны другие дни и другие месяцы.
Но проблема в том, что в каждом месяце за каждый год написано «Закрыто бронирование» за те же последние дни. Это как условие, если блок не входит в игру.
Я попробовал все, но не могу понять. Я верю, что это будет маленькая вещь, по которой я скучаю, но не могу понять это.
Так что любая помощь приветствуется. Как говорится, две головы лучше, чем одна.
Мой код ниже:
if($_POST){
date_default_timezone_set('Africa/Lagos');
$date = date('Y-m-d');
$cimslots = "30";
$year = $_POST['year'];
$month = $_POST['month'];
$days = date('j');
$daysinmonth = date('t',mktime(0,0,0,$month,1,$year));
$curday = date('d');
$curmonth = date('n');
$curyear = date('Y');
}
<div id="calendar-display">
<?Php for($day = 1; $day <= $daysinmonth; $day++){
$checkday = date("l", mktime(0, 0, 0,$month,$day,$year));
$query = "SELECT cimID, screeningdate, paymentstatus FROM cimbooking WHERE YEAR(screeningdate)=? AND MONTH(screeningdate)=? AND DAY(screeningdate)=?";
$stmt = $connQlife->prepare($query);
$stmt->bind_param('sss', $year, $month, $day);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($cimID, $screeningdate, $paymentstatus);
$stmt->fetch();
$totalnumrows = $stmt->num_rows;
$stmt->close();
$availableslots = $cimslots - $totalnumrows;
$querypubhols = "SELECT phdateID, phdate, phdetail FROM pubhols WHERE YEAR(phdate)=? AND MONTH(phdate)=? AND DAY(phdate)=?";
$stmtpubhols = $connQlife->prepare($querypubhols);
$stmtpubhols->bind_param('sss', $year, $month, $day);
$stmtpubhols->execute();
$stmtpubhols->store_result();
$stmtpubhols->bind_result($phdateID, $phdate, $phdetail);
$stmtpubhols->fetch();
$stmtpubhols->close();
?>
<div class="calendarcont">
<?Php if (($checkday != "Sunday")&&($checkday != "Saturday")&&($phdate == "")) { ?>
<div class="calendarheadercont">
<div class="calendarday"><?Php echo date("l", mktime(0, 0, 0,$month,$day,$year)); ?></div>
</div>
<div class="clear_1"></div>
<div class="calendarsubcont">
<div class="calendardatecont">
<div class="calendarmonth"><?Php echo date("M", mktime(0,0,0, $month,$day,$year)); ?></div>
<div class="calendardate"><?Php echo date("j", mktime(0,0,0,$month,$day,$year)); ?></div>
</div>
<?Php if (($year = $curyear)&&($month = $curmonth)&&($day > $curday)){ ?>
<div class="calendartextcont">
<?Php if ($availableslots > 5){ ?>
<div class="calendartextg">Available slots: <?Php echo $availableslots; ?></div>
<?php } ?>
<?Php if (($availableslots >= 1)&&($availableslots <= 5)) { ?>
<div class="calendartexto">Available slots: <?Php echo $availableslots; ?></div>
<?php } ?>
<?Php if ($availableslots <= 0){ ?>
<div class="calendartextr">No Slots Available!</div>
<?php } ?>
</div>
<?Php if ($availableslots >= 1){ ?>
<label class="calendarcheckbox">Select
<input type="checkbox" name="screening" id="screening" value="<?Php if ($screeningdate=="") {echo date('Y-m-d', mktime(0,0,0,$month,$day,$year)); }else{ echo $screeningdate; } ?>">
<span class="checkmark"></span>
</label>
<?php } ?>
<?php } else { ?>
<div class="calendartextcont">
<div class="calendartextr">Booking Closed!</div>
</div>
<?php } ?>
</div>
<?Php }else if ($checkday == "Sunday"){ ?>
<div class="calendarheadercont">
<div class="calendarday"><?Php echo date("l", mktime(0, 0, 0,$month,$day,$year)); ?></div>
</div>
<div class="clear_1"></div>
<div class="calendarsubcont">
<div class="calendardatecont">
<div class="calendarmonth"><?Php echo date("M", mktime(0,0,0, $month,$day,$year)); ?></div>
<div class="calendardate"><?Php echo date("j", mktime(0,0,0,$month,$day,$year)); ?></div>
</div>
<div class="calendartextcont">
<div class="calendartextr">Closed On Sundays!</div>
</div>
</div>
<?Php }else if ($checkday == "Saturday"){ ?>
<div class="calendarheadercont">
<div class="calendarday"><?Php echo date("l", mktime(0, 0, 0,$month,$day,$year)); ?></div>
</div>
<div class="clear_1"></div>
<div class="calendarsubcont">
<div class="calendardatecont">
<div class="calendarmonth"><?Php echo date("M", mktime(0,0,0, $month,$day,$year)); ?></div>
<div class="calendardate"><?Php echo date("j", mktime(0,0,0,$month,$day,$year)); ?></div>
</div>
<div class="calendartextcont">
<div class="calendartextr">No Screening!</div>
</div>
</div>
<?Php }else if ($phdate != ""){ ?>
<div class="calendarheadercont">
<div class="calendarday"><?Php echo date("l", mktime(0, 0, 0,$month,$day,$year)); ?></div>
</div>
<div class="clear_1"></div>
<div class="calendarsubcont">
<div class="calendardatecont">
<div class="calendarmonth"><?Php echo date("M", mktime(0,0,0, $month,$day,$year)); ?></div>
<div class="calendardate"><?Php echo date("j", mktime(0,0,0,$month,$day,$year)); ?></div>
</div>
<div class="calendartextcont">
<div class="calendartextr"><?Php echo $phdetail; ?></div>
</div>
</div>
<?Php } ?>
</div>
<?Php } ?>
</div>