<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title><!-- Title here --></title>
<link data-require="jqueryui" data-semver="1.10.0" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.0/css/smoothness/jquery-ui-1.10.0.custom.min.css" />
<link rel="stylesheet" href="style.css" />
<script data-require="jquery" data-semver="2.0.3" src="//code.jquery.com/jquery-2.0.3.min.js"></script>
<script data-require="jqueryui" data-semver="1.10.0" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.0/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
</head>
<body>
<!--
<div class='line'>
<div>
<label for="m-th-picker">m-th-picker:</label>
<input type="date" id="system-date" />
</div>
</div>
-->
<div class='line'>
<div>
<label for="m-th-picker">m-th-picker:</label>
<div id="m-th-picker"></div>
</div>
</div>
<div class='line'>
<div>
<label for="m-th-picker-plus-time-thresholds">m-th-picker-plus-time-thresholds:</label>
<div id="m-th-picker-plus-time-thresholds"></div>
</div>
</div>
<div class='line'>
<div>
<label for="m-w-f-picker">m-w-f-picker:</label>
<div id="m-w-f-picker"></div>
</div>
</div>
<div class='line'>
<div>
<label for="m-w-f-picker-plus-time-thresholds">m-w-f-picker-plus-time-thresholds:</label>
<div id="m-w-f-picker-plus-time-thresholds"></div>
</div>
</div>
<script src="clear-console.js"></script>
<script src="script.js"></script>
</body>
</html>
$(document).ready(function() {
// clear console between runs
if (typeof console._commandLineAPI !== 'undefined') {
console.API = console._commandLineAPI;
} else if (typeof console._inspectorCommandLineAPI !== 'undefined') {
console.API = console._inspectorCommandLineAPI;
} else if (typeof console.clear !== 'undefined') {
console.API = console;
}
console.API.clear();
// Only Allow Monday, Thursday
$("#m-th-picker").datepicker({
minDate: new Date(),
maxDate: '+1M',
altField: "#delivery_date",
beforeShowDay: function(date){
var day = date.getDay();
return [day == 1 || day == 4,""];
}
});
// Only Allow Monday and Thursday
// AND Block Thursday after 4:30 on Tuesday
// AND Block Monday after 4:30 on Saturday
function getMonThursMinDate() {
var todaysMoment = moment(new Date()),
thisThursday = 4,
nextMonday = 8,
nextThursday = 11,
nextNextMonday = 15,
mondayThresh = 6210,
thursdayThresh = 3330,
minutesUntilNextMonday = moment().day(nextMonday).hours(0).minutes(0).seconds(0).diff(todaysMoment, 'minutes'),
isBeforeMondayCutoff = minutesUntilNextMonday >= mondayThresh,
minutesUntilNextThursday = moment().day(nextMonday).hours(0).minutes(0).seconds(0).diff(todaysMoment, 'minutes'),
isBeforeThursdayCutoff = minutesUntilNextThursday >= thursdayThresh,
minDate =
isBeforeMondayCutoff ?
"+" + moment().day(thisThursday).fromNow(true).replace(' days', 'd') :
isBeforeThursdayCutoff ?
"+" + moment().day(nextMonday).fromNow(true).replace(' days', 'd') :
"+" + moment().day(nextThursday).fromNow(true).replace(' days', 'd');
console.log('minutesUntilNextMonday %s', minutesUntilNextMonday);
console.log('isBeforeMondayCutoff %s', isBeforeMondayCutoff);
console.log('minutesUntilNextThursday %s', minutesUntilNextThursday);
console.log('isBeforeThursdayCutoff %s', isBeforeThursdayCutoff);
return minDate;
}
$("#m-th-picker-plus-time-thresholds").datepicker({
minDate: getMonThursMinDate(),
maxDate: '+1M',
altField: "#delivery_date",
beforeShowDay: function(date){
var day = date.getDay();
return [day == 1 || day == 4,""];
}
});
});
.line{
display:inline-block;
vertical-align:top}
.ui-datepicker-range>.ui-state-default{
background:lightblue}
$(document).ready(function() {
// clear console between runs
if (typeof console._commandLineAPI !== 'undefined') {
console.API = console._commandLineAPI;
} else if (typeof console._inspectorCommandLineAPI !== 'undefined') {
console.API = console._inspectorCommandLineAPI;
} else if (typeof console.clear !== 'undefined') {
console.API = console;
}
console.API.clear();
});