Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
JavaScript datepicker for reservation system

Im working on a website similar to a hotel reservation system. Users are allowed to book a room using the website.

These are the unavailable dates:

['2021-11-17', '2021-11-18', '2021-11-19', '2021-11-20', '2021-11-27', '2021-11-28']

In my datepicker, I wish to do these:

  1. Only future dates, and check-out date shouldn't be earlier than check-in date
  2. To grey out the unavailable dates so that users cant choose them
  3. If the user choose to check-in on 2021-11-11, the check-out option range until 2021-11-16

My current JS:

const dateCheck = ['2021-11-17', '2021-11-18', '2021-11-19', '2021-11-20', '2021-11-27', '2021-11-28']

function disableDates(date) {
  var string = jQuery.datepicker.formatDate("yy-mm-dd", date);
  return [dateCheck.indexOf(string) == -1]
}


$("#listingCheckIn").datepicker({
  beforeShowDay: disableDates,
  minDate: 0,
  dateFormat: "yy-mm-dd",
  showOn: "both",
  //upon selection     
  onSelect: function(dateText, inst) {
    $("#listingCheckOut").datepicker("option", "minDate",
      $("#listingCheckIn").datepicker("getDate")); //2nd datepicker to set min value for 1st datepicker
  }
});

$("#listingCheckOut").datepicker({
  beforeShowDay: disableDates,
  minDate: 0,
  dateFormat: "yy-mm-dd",
  onSelect: function(dateText, inst) {
    $("#listingCheckOut").datepicker("option", "minDate",
      $("#listingCheckIn").datepicker("getDate")); //2nd datepicker to set min value for 1st datepicker
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>

<form action="booking.php" id="bookingForm" method="post">
  <div id="C_rightColumn">
    <div class="C_rcTopBox flex-c-c">
      Rates
    </div>

    <div class="C_rcTopBox flex-c-c">
      <label>Check-In Date</label>
      <input type="text" id="listingCheckIn" name="checkin" class="date">
    </div>

    <div class="C_rcTopBox flex-c-c">
      <label>Check-Out Date</label>
      <input type="text" id="listingCheckOut" name="checkout" class="date">
    </div>

    <div class="C_rcBtmBox">
      <button type="submit" class="btn" name="bookProperty">Book Now!</button>
    </div>
  </div>
</form>

Basically, 1 and 2 is a go, but how do I achieve 3 so that a user must check out before the check-in of other bookings? Thanks in advance.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!