Ada beforeShowDay
opsi, yang membutuhkan fungsi untuk dipanggil untuk setiap tanggal, menghasilkan true jika tanggal diizinkan atau salah jika tidak. Dari dokumen:
sebelumShowDay
Fungsi mengambil tanggal sebagai parameter dan harus mengembalikan array dengan [0] sama dengan benar / salah yang menunjukkan apakah tanggal ini dapat dipilih dan 1 sama dengan nama kelas CSS atau '' untuk presentasi default. Itu dipanggil untuk setiap hari di datepicker sebelum itu ditampilkan.
Tampilkan beberapa hari libur nasional di datepicker.
$(".selector").datepicker({ beforeShowDay: nationalDays})
natDays = [
[1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'],
[4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],
[7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'],
[10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']
];
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
Ada satu fungsi bawaan, yang disebut noWeekends, yang mencegah pemilihan hari akhir pekan.
$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
Untuk menggabungkan keduanya, Anda bisa melakukan sesuatu seperti (dengan asumsi nationalDays
fungsi dari atas):
$(".selector").datepicker({ beforeShowDay: noWeekendsOrHolidays})
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
Pembaruan : Perhatikan bahwa pada jQuery UI 1.8.19, opsi beforeShowDay juga menerima paremeter ketiga opsional, popup tooltip
Uncaught TypeError: Cannot read property 'noWeekends' of undefined
fungsi hari nasional berfungsi seperti yang diharapkanJika Anda tidak ingin akhir pekan muncul sama sekali, cukup:
CSS
sumber
td.ui-datepicker-week-end { visibility: hidden; }
Jawaban-jawaban ini sangat membantu. Terima kasih.
Kontribusi saya di bawah ini menambahkan sebuah array di mana beberapa hari dapat menghasilkan false (kami tutup setiap hari Selasa, Rabu dan Kamis). Dan saya menggabungkan tanggal tertentu ditambah tahun dan fungsi tanpa akhir pekan.
Jika Anda ingin libur akhir pekan, tambahkan [Sabtu], [Minggu] ke array closedDays.
sumber
Datepicker memiliki fungsi ini bawaan!
http://api.jqueryui.com/datepicker/#utility-noWeekends
sumber
Solusi di sini yang disukai semua orang tampaknya sangat intens ... secara pribadi saya pikir ini jauh lebih mudah untuk melakukan sesuatu seperti ini:
Dengan cara ini teman kencan Anda bisa dibaca manusia. Tidak terlalu berbeda, itu lebih masuk akal bagi saya dengan cara ini.
sumber
Versi kode ini akan membuat Anda mendapatkan tanggal liburan dari basis data sql dan menonaktifkan tanggal yang ditentukan dalam UI Datepicker
Buat Database dalam sql dan beri Anda tanggal liburan dalam format MM / DD / YYYY sebagai Varchar Masukkan konten di bawah ini dalam file getdate.php
Selamat Coding !!!! :-)
sumber
Anda dapat menggunakan fungsi noWeekends untuk menonaktifkan pilihan akhir pekan
sumber
sumber
Dalam versi ini, bulan, hari, dan tahun menentukan hari mana yang akan diblokir di kalender.
sumber
untuk menonaktifkan hari Anda dapat melakukan sesuatu seperti ini.
<input type="text" class="form-control datepicker" data-disabled-days="1,3">
di mana 1 adalah Senin dan 3 adalah Rabusumber
Dalam versi Bootstrap 3 terbaru (bootstrap-datepicker.js)
beforeShowDay
mengharapkan hasil dalam format ini:Atau, jika Anda tidak peduli dengan CSS dan tooltip maka cukup mengembalikan boolean
false
untuk membuat tanggal tidak dipilih.Juga, tidak ada
$.datepicker.noWeekends
, jadi Anda perlu melakukan sesuatu seperti ini:sumber
Untuk hari Sabtu dan Minggu Anda bisa melakukan hal seperti ini
sumber