datepicker cut off time MASTER
by John Doe
HTML
<script src="https://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/themes/mint-choc/jquery-ui.css">
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
<h1>
sol use http://phpfiddle.org/# as it uses servertime instead
</h1>
<div class="booking-date">
<p>
<label for="date">Select booking date below:</label>
<input id="date" type="text" name="properties[delivery-date]" readonly="readonly" style="background:white; width:30%" class="required" data-error="Please choose a delivery date." />
</p>
<div id="log"></div>
</div>
JavaScript
jQuery.noConflict();
jQuery(document).ready(function() {
//jQuery(function() {
jQuery("#date").datepicker({
// minDate: new Date(((new Date).getTime() + 49 * 60 * 60 * 1000) ),
minDate: checkBeforeBook(),
maxDate: "+2M", // show up to 2 months
dateFormat: 'dd/mm/yy'
//foreShowDay: available_dates
});
//});
/*========== check time ==========*/
// if time after 10pm, close next day booking
function checkBeforeBook(nextDayBook) {
// booking for following day starts 10am and ends 10pm
var startTime = '10:00 AM';
var endTime = '10:00 PM'; // cut off time
var curr_time = getvaltime();
if (get24Hr(curr_time) > get24Hr(startTime) && get24Hr(curr_time) < get24Hr(endTime)) {
// next day book is available
console.log("start :" + get24Hr(startTime));
var nextDayBook = '+1d';
jQuery("#log").html('available ');
} else {
// next day book is NOT unavailable move select date on to 2d
console.log("start :" + get24Hr(startTime));
console.log("end :" + get24Hr(endTime));
var nextDayBook = '+2d';
jQuery("#log").html('not available! ');
}
return nextDayBook;
}
function get24Hr(time) {
var hours = Number(time.match(/^(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if (AMPM == "PM" && hours < 12) hours = hours + 12;
if (AMPM == "AM" && hours == 12) hours = hours - 12;
var minutes = Number(time.match(/:(\d+)/)[1]);
hours = hours * 100 + minutes;
console.log("time=" + time + " - " + hours);
return hours;
}
function getvaltime() {
// set default timezone
//var serverdatetime = new Date("<?php echo date('Y m d,H:i:s'); ?>");
//var dt = new Date("<?php echo date('Y m d,H:i:s'); ?>");
//console.log("current server time is: " + dt);
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
if (minutes < 10) minutes = "0" + minutes;
...