जवाबों:
एक beforeShowDay
विकल्प है, जो प्रत्येक तिथि के लिए बुलाए जाने के लिए एक फ़ंक्शन लेता है, यह सच है कि यदि तारीख की अनुमति है या गलत है यदि यह नहीं है। डॉक्स से:
beforeShowDay
समारोह एक पैरामीटर के रूप में एक तिथि लेता है और साथ [0] सही / गलत के बराबर का संकेत है या नहीं, इस तिथि चयन है और एक सरणी लौटना चाहिए 1 डिफ़ॉल्ट प्रस्तुति के लिए एक CSS वर्ग नाम (एस) या '' के बराबर। इसे प्रदर्शित करने से पहले इसे प्रत्येक दिन डेटापिक में बुलाया जाता है।
डेटकिकर में कुछ राष्ट्रीय अवकाश प्रदर्शित करें।
$(".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, ''];
}
फ़ंक्शन में बनाया गया एक मौजूद है, जिसे noWeekends कहा जाता है, जो सप्ताहांत के दिनों के चयन को रोकता है।
$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })
दोनों को मिलाने के लिए, आप कुछ ऐसा कर सकते हैं ( nationalDays
ऊपर से फ़ंक्शन मानकर ):
$(".selector").datepicker({ beforeShowDay: noWeekendsOrHolidays})
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
अद्यतन : ध्यान दें कि jQuery के यूआई 1.8.19 के रूप में, पहले वाला ShowDay विकल्प भी एक वैकल्पिक तीसरा paremeter, एक पॉपअप टूलटिप स्वीकार करता है
Uncaught TypeError: Cannot read property 'noWeekends' of undefined
राष्ट्रीय दिवस समारोह की उम्मीद के
यदि आप सप्ताहांत को बिल्कुल नहीं दिखाना चाहते हैं, तो बस:
सीएसएस
th.ui-datepicker-week-end,
td.ui-datepicker-week-end {
display: none;
}
td.ui-datepicker-week-end { visibility: hidden; }
ये उत्तर बहुत मददगार थे। धन्यवाद।
नीचे मेरा योगदान एक सरणी जोड़ता है जहां कई दिन झूठे वापस आ सकते हैं (हम हर मंगलवार, बुधवार और गुरुवार को बंद होते हैं)। और मैंने विशिष्ट तिथियों और वर्षों के नो-वीकेंड्स को बंडल किया।
यदि आप सप्ताहांत चाहते हैं, तो [शनिवार], [रविवार] को बंद करें सरणी में जोड़ें।
$(document).ready(function(){
$("#datepicker").datepicker({
beforeShowDay: nonWorkingDates,
numberOfMonths: 1,
minDate: '05/01/09',
maxDate: '+2M',
firstDay: 1
});
function nonWorkingDates(date){
var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6;
var closedDates = [[7, 29, 2009], [8, 25, 2010]];
var closedDays = [[Monday], [Tuesday]];
for (var i = 0; i < closedDays.length; i++) {
if (day == closedDays[i][0]) {
return [false];
}
}
for (i = 0; i < closedDates.length; i++) {
if (date.getMonth() == closedDates[i][0] - 1 &&
date.getDate() == closedDates[i][1] &&
date.getFullYear() == closedDates[i][2]) {
return [false];
}
}
return [true];
}
});
तारीख में यह कार्यक्षमता अंतर्निहित है!
$( "#datepicker" ).datepicker({
beforeShowDay: $.datepicker.noWeekends
});
यहाँ समाधान है कि हर कोई पसंद करता है बहुत तीव्र लगता है ... व्यक्तिगत रूप से मुझे लगता है कि ऐसा करना बहुत आसान है:
var holidays = ["12/24/2012", "12/25/2012", "1/1/2013",
"5/27/2013", "7/4/2013", "9/2/2013", "11/28/2013",
"11/29/2013", "12/24/2013", "12/25/2013"];
$( "#requestShipDate" ).datepicker({
beforeShowDay: function(date){
show = true;
if(date.getDay() == 0 || date.getDay() == 6){show = false;}//No Weekends
for (var i = 0; i < holidays.length; i++) {
if (new Date(holidays[i]).toString() == date.toString()) {show = false;}//No Holidays
}
var display = [show,'',(show)?'':'No Weekends or Holidays'];//With Fancy hover tooltip!
return display;
}
});
इस तरह आपकी तिथियां मानव पठनीय हैं। यह वास्तव में अलग नहीं है कि यह मेरे लिए इस तरह से अधिक समझ में आता है।
कोड का यह संस्करण आपको sql डेटाबेस से छुट्टी की तारीखों को प्राप्त करने और UI Datepicker में निर्दिष्ट दिनांक को अक्षम करने के लिए बना देगा
$(document).ready(function (){
var holiDays = (function () {
var val = null;
$.ajax({
'async': false,
'global': false,
'url': 'getdate.php',
'success': function (data) {
val = data;
}
});
return val;
})();
var natDays = holiDays.split('');
function nationalDays(date) {
var m = date.getMonth();
var d = date.getDate();
var y = date.getFullYear();
for (var i = 0; i ‘ natDays.length-1; i++) {
var myDate = new Date(natDays[i]);
if ((m == (myDate.getMonth())) && (d == (myDate.getDate())) && (y == (myDate.getFullYear())))
{
return [false];
}
}
return [true];
}
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
$(function() {
$("#shipdate").datepicker({
minDate: 0,
dateFormat: 'DD, d MM, yy',
beforeShowDay: noWeekendsOrHolidays,
showOn: 'button',
buttonImage: 'images/calendar.gif',
buttonImageOnly: true
});
});
});
Sql में एक डेटाबेस बनाएँ और आपको MM / DD / YYYY प्रारूप में छुट्टी की तारीखें डालें वरचेर के रूप में नीचे दी गई सामग्री को फ़ाइल getdate.php में डालें।
[php]
$sql="SELECT dates FROM holidaydates";
$result = mysql_query($sql);
$chkdate = $_POST['chkdate'];
$str='';
while($row = mysql_fetch_array($result))
{
$str .=$row[0].'';
}
echo $str;
[/php]
हैप्पी कोडिंग !!!! :-)
$("#selector").datepicker({ beforeShowDay: highlightDays });
...
var dates = [new Date("1/1/2011"), new Date("1/2/2011")];
function highlightDays(date) {
for (var i = 0; i < dates.length; i++) {
if (date - dates[i] == 0) {
return [true,'', 'TOOLTIP'];
}
}
return [false];
}
इस संस्करण में, महीने, दिन, और वर्ष कैलेंडर पर ब्लॉक करने के लिए कौन से दिन निर्धारित करते हैं।
$(document).ready(function (){
var d = new Date();
var natDays = [[1,1,2009],[1,1,2010],[12,31,2010],[1,19,2009]];
function nationalDays(date) {
var m = date.getMonth();
var d = date.getDate();
var y = date.getFullYear();
for (i = 0; i < natDays.length; i++) {
if ((m == natDays[i][0] - 1) && (d == natDays[i][1]) && (y == natDays[i][2]))
{
return [false];
}
}
return [true];
}
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
$(function() {
$(".datepicker").datepicker({
minDate: new Date(d.getFullYear(), 1 - 1, 1),
maxDate: new Date(d.getFullYear()+1, 11, 31),
hideIfNoPrevNext: true,
beforeShowDay: noWeekendsOrHolidays,
});
});
});
कुछ दिनों के लिए आप ऐसा कुछ कर सकते हैं।
<input type="text" class="form-control datepicker" data-disabled-days="1,3">
जहां 1 सोमवार है और 3 बुधवार है
नवीनतम बूटस्ट्रैप 3 संस्करण (bootstrap-datepicker.js) beforeShowDay
में इस प्रारूप में परिणाम की उम्मीद है:
{ enabled: false, classes: "class-name", tooltip: "Holiday!" }
वैकल्पिक रूप से, यदि आप सीएसएस और टूलटिप के बारे में परवाह नहीं करते हैं, तो false
तारीख को अचूक बनाने के लिए बस एक बूलियन वापस करें ।
इसके अलावा, वहाँ नहीं है $.datepicker.noWeekends
, तो आप इस की तर्ज पर कुछ करने की जरूरत है:
var HOLIDAYS = { // Ontario, Canada holidays
2017: {
1: { 1: "New Year's Day"},
2: { 20: "Family Day" },
4: { 17: "Easter Monday" },
5: { 22: "Victoria Day" },
7: { 1: "Canada Day" },
8: { 7: "Civic Holiday" },
9: { 4: "Labour Day" },
10: { 9: "Thanksgiving" },
12: { 25: "Christmas", 26: "Boxing Day"}
}
};
function filterNonWorkingDays(date) {
// Is it a weekend?
if ([ 0, 6 ].indexOf(date.getDay()) >= 0)
return { enabled: false, classes: "weekend" };
// Is it a holiday?
var h = HOLIDAYS;
$.each(
[ date.getYear() + 1900, date.getMonth() + 1, date.getDate() ],
function (i, x) {
h = h[x];
if (typeof h === "undefined")
return false;
}
);
if (h)
return { enabled: false, classes: "holiday", tooltip: h };
// It's a regular work day.
return { enabled: true };
}
$("#datePicker").datepicker({ beforeShowDay: filterNonWorkingDays });
शनिवार और रविवार के लिए आप कुछ ऐसा कर सकते हैं
$('#orderdate').datepicker({
daysOfWeekDisabled: [0,6]
});