A small & simple date picker in JavaScript. Has no dependencies and supports active days, inactive days, half days, refreshing options, min/max dates, custom start days, UTC, translation, and node/browserify.
[]
<div id='datepickr'></div>
<pre id='output'>[]</pre>
<script src='datepickr.min.js'></script>
<script>
var el = document.getElementById('datepickr');
var output = document.getElementById('output');
new Datepickr(el, function(res) {
output.textContent = JSON.stringify(res);
});
</script>
var d = new Date();
new Datepickr(document.getElementById('datepickr-activedays'), function(res) {
console.log(res);
}, {
activeDays: [
[new Date(d.getFullYear(), d.getMonth(), 1).getTime(), 1],
[new Date(d.getFullYear(), d.getMonth(), 2).getTime(), 1],
[new Date(d.getFullYear(), d.getMonth(), 12).getTime(), 1],
[new Date(d.getFullYear(), d.getMonth(), 13).getTime(), 1],
[new Date(d.getFullYear(), d.getMonth(), 22).getTime(), 1],
]
});
var d = new Date();
// If the month is December, roll back to January as next month.
var month = ((d.getMonth() + 1) === 12) ? -1 : d.getMonth();
new Datepickr(document.getElementById('datepickr-omit'), function(res) {
console.log(res);
}, {
omitPast: true,
omitWeekends: true,
// You can also omit the future.
// omitFuture: true,
// Omit the 12th, 13th & 22nd of the following month
// if they don't already fall on a weekend.
omitDays: [
new Date(d.getFullYear(), month + 1, 12).getTime(),
new Date(d.getFullYear(), month + 1, 13).getTime(),
new Date(d.getFullYear(), month + 1, 22).getTime()
]
});
[]
<div id='datepickr-half'></div>
<pre id='output-half'>[]</pre>
<script src='datepickr.min.js'></script>
<script>
var el = document.getElementById('datepickr-half');
var output = document.getElementById('output-half');
new Datepickr(el, function(res) {
output.textContent = JSON.stringify(res);
}, {
halfDay: true
});
</script>
<div id='datepickr-half'></div>
<input type='checkbox' id='toggle-refresh'>
<label for='toggle-refresh'>Toggle half days?</label>
<script src='datepickr.min.js'></script>
<script>
var refresh = document.getElementById('datepickr-refresh');
var toggle = document.getElementById('toggle-refresh');
var pickr = new Datepickr(refresh, function(res) {
console.log(res);
});
toggle.addEventListener('change', function() {
if (this.checked) {
pickr.options({
halfDay: true
});
} else {
pickr.options({
halfDay: false
});
}
});
</script>
// Set a min and max to the current year.
var now = new Date();
var year = now.getFullYear();
new Datepickr(document.getElementById('datepickr-minmax'), function(res) {
console.log(res);
}, {
minDate: new Date(year, 0).getTime(),
maxDate: new Date(year, 11).getTime()
});
new Datepickr(document.getElementById('datepickr-start'), function(res) {
console.log(res);
}, {
startYear: 2015,
startMonth: 7
});
new Datepickr(document.getElementById('datepickr-utc'), function(res) {
console.log(res);
}, {
utc: true
});
new Datepickr(document.getElementById('datepickr-translate'), function(res) {
console.log(res);
}, {
weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
});
// npm install datepickr
var datepickr = require('datepickr')
datepickr(el, function(res) {
console.log(res);
});