71

मैं यूआई दिनांक पिकर का उपयोग कर चयन श्रेणी चुनने की कोशिश कर रहा हूं।jQuery दिनांक पिकर - पिछली तिथियों को अक्षम करें

से/क्षेत्र में लोगों को वर्तमान दिन से पहले की तारीखों को देखने या चुनने में सक्षम नहीं होना चाहिए।

$(function() { 
    var dates = $("#from, #to").datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 1, 
     onSelect: function(selectedDate) { 
      var option = this.id == "from" ? "minDate" : "maxDate", 
       instance = $(this).data("datepicker"), 
       date = $.datepicker.parseDate(
        instance.settings.dateFormat || 
        $.datepicker._defaults.dateFormat, 
        selectedDate, instance.settings); 
      dates.not(this).datepicker("option", option, date); 
     } 
    }); 
}); 

कुछ एक मुझे बताओ कैसे निष्क्रिय करने के लिए दिनांक वर्तमान तिथि करने के लिए पिछले कर सकते हैं:

यह मेरा कोड है।

उत्तर

83

आप एक नई तिथि वस्तु बना सकते हैं और minDate के रूप में सेट है जब आप datepickers प्रारंभ

<label for="from">From</label> <input type="text" id="from" name="from"/> <label for="to">to</label> <input type="text" id="to" name="to"/> 

var dateToday = new Date(); 
var dates = $("#from, #to").datepicker({ 
    defaultDate: "+1w", 
    changeMonth: true, 
    numberOfMonths: 3, 
    minDate: dateToday, 
    onSelect: function(selectedDate) { 
     var option = this.id == "from" ? "minDate" : "maxDate", 
      instance = $(this).data("datepicker"), 
      date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings); 
     dates.not(this).datepicker("option", option, date); 
    } 
}); 

संपादित करना होगा - अब अपनी टिप्पणी से यह के रूप में की उम्मीद http://jsfiddle.net/nicolapeluchetti/dAyzq/1/

+2

मैं इस तरह से एक तरीका लागू करना चाहता हूं कि लोगों को एक तिथि चुनने में सक्षम नहीं होना चाहिए जो पिछले हो चुका है ..कल से पहले दिन आदि। केवल आज और बाद से। –

+1

@ हरशाएमवी मैंने अपना जवाब अपडेट किया है, आपको डेटपिकर्स –

+0

@PoweRoy को प्रारंभ करने के बाद ही मिनीडेट सेट करना चाहिए, मैंने अपनी टिप्पणी के बाद उत्तर अपडेट किया –

65

घोषित dateToday चर और उपयोग की तारीख (काम करता है) इसे सेट करने के लिए फ़ंक्शन .. फिर उस चर का उपयोग minDate को असाइन करने के लिए करें जो डेटपिकर का पैरामीटर है।

var dateToday = new Date(); 
$(function() { 
    $("#datepicker").datepicker({ 
     numberOfMonths: 3, 
     showButtonPanel: true, 
     minDate: dateToday 
    }); 
}); 

यह है कि ... ऊपर जवाब वास्तव में मददगार था ... इसे जारी रखें लोग .. datepicker की

+0

इस जानकारी के लिए धन्यवाद –

+0

स्पष्ट और सीधा जवाब .. धन्यवाद – ASD

1

सेट STARTDATE विशेषता है, यह काम करता है, नीचे काम कर कोड

$(function(){ 
$('#datepicker').datepicker({ 
    startDate: '-0m' 
    //endDate: '+2d' 
}).on('changeDate', function(ev){ 
    $('#sDate1').text($('#datepicker').data('date')); 
    $('#datepicker').datepicker('hide'); 
}); 
}) 
2
है

jQuery API documentation - datepicker

न्यूनतम चयन योग्य दिनांक। जब null पर सेट किया गया है, तो न्यूनतम नहीं है।

एकाधिक समर्थित प्रकार:

दिनांक: एक तारीख न्यूनतम तारीख युक्त वस्तु।
संख्या: आज से कई दिनों। उदाहरण के लिए 2 आज से two days का प्रतिनिधित्व करता है और -1yesterday का प्रतिनिधित्व करता है।
स्ट्रिंग:dateFormat विकल्प, या एक सापेक्ष दिनांक द्वारा परिभाषित प्रारूप में एक स्ट्रिंग।
सापेक्ष तिथियों में मूल्य और अवधि जोड़े होना चाहिए; वैध अवधि months के लिए years के लिए y, m, weeks के लिए w, और days के लिए d हैं। उदाहरण के लिए, +1m +7d से one month and seven days का प्रतिनिधित्व करता है।

आदेश आज

$('#datepicker').datepicker({minDate: 0}); 
0

के अलावा अन्य पिछली तारीखों तुम मेरे लिए इस

$(function() { 
    var date = new Date(); 
    var currentMonth = date.getMonth(); 
    var currentDate = date.getDate(); 
    var currentYear = date.getFullYear(); 
    $('#datepicker').datepicker({ 
    minDate: new Date(currentYear, currentMonth, currentDate) 
    }); 
}) 
40
$('#datepicker-dep').datepicker({ 
    minDate: 0 
}); 

minDate:0 काम करता है की तरह चर में आज की तारीख घोषित करने के लिए है प्रदर्शित करने के लिए नहीं है।

7

बस इस में जोड़ने के लिए:

आप भी करने की जरूरत है उपयोगकर्ता को रोकने के लिए मैन्युअल रूप से पूर्व की कोई तिथि टाइप करने के लिए, यह एक संभव समाधान है। यह (@Nicola Peluchetti के जवाब के आधार पर) है कि हम क्या कर समाप्त हो गया है

var dateToday = new Date(); 

$("#myDatePickerInput").change(function() { 
    var updatedDate = $(this).val(); 
    var instance = $(this).data("datepicker"); 
    var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, updatedDate, instance.settings); 

    if (date < dateToday) { 
     $(this).datepicker("setDate", dateToday); 
    } 
}); 

क्या करता है आज की तारीख करने के लिए मान बदलने के लिए है अगर उपयोगकर्ता को अपने से पूर्व की कोई तिथि प्रकार के।

+0

साझा करने के लिए धन्यवाद। यह बढ़िया काम करता है। +1। – OO7

4

Live Demo, इस कोशिश,

$('#from').datepicker(
    { 
     minDate: 0, 
     beforeShow: function() { 
     $(this).datepicker('option', 'maxDate', $('#to').val()); 
     } 
    }); 
    $('#to').datepicker(
    { 
     defaultDate: "+1w", 
     beforeShow: function() { 
     $(this).datepicker('option', 'minDate', $('#from').val()); 
     if ($('#from').val() === '') $(this).datepicker('option', 'minDate', 0);        
    } 
    }); 
2

"mindate" विशेषता jQuery datepicker में पारित दिनांकों को निष्क्रिय करने के लिए करना चाहिए।

minDate: new Date() Or minDate: '0' is the key for this.

Ex: 

$(function() { 
    $("#datepicker").datepicker({minDate: new Date()}); 
}); 

या

$(function() { 
    $("#datepicker").datepicker({minDate: 0}); 
}); 
0
$("#date").datetimepicker({startDate:new Date()}).datetimepicker('update', new Date()); 

new Date(): समारोह आज की तारीख पिछली तिथि बंद हैं मिलता है। 100% काम कर रहे

2

सिर्फ अपने कोड के स्थान पर:

पुराने कोड:

$("#dateSelect").datepicker({ 
    showOtherMonths: true, 
    selectOtherMonths: true, 
    changeMonth: true, 
    changeYear: true, 
    showButtonPanel: true, 
    dateFormat: 'yy-mm-dd' 

}); 

नए कोड:

$("#dateSelect").datepicker({ 
    showOtherMonths: true, 
    selectOtherMonths: true, 
    changeMonth: true, 
    changeYear: true, 
    showButtonPanel: true, 
    dateFormat: 'yy-mm-dd', 
    minDate: 0 
}); 
12

जल्द से जल्द अनुमति तारीख प्रतिबंधित करने के लिए "minDate" विकल्प का उपयोग।

$(document).ready(function() { 
     $("#txtdate").datepicker({ 
      minDate: 0, 
      // ... 
     }); 
    }); 

डॉक्स यहाँ: मूल्य "0" (आज से 0 दिन) आज का मतलब है http://api.jqueryui.com/datepicker/#option-minDate

1

यह आसान तरीका यह

$('#datepicker').datepicker('setStartDate', new Date()); 

करने के लिए भी हम भविष्य दिनों अक्षम कर सकते हैं

$('#datepicker').datepicker('setEndDate', new Date()); 
0

मैंने पिछले दिनांक को अक्षम करने के लिए फ़ंक्शन बनाया है, डीए ब्ली लचीला सप्ताहांत दिन (शनिवार, रविवार की तरह)

हम का उपयोग कर रहे हैं जो पहले यूवी डेटपिकर प्लगइन के शोडे विधि से पहले है।

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
var NotBeforeToday = function(date) { 
 
\t \t var now = new Date(); //this gets the current date and time 
 
\t \t if (date.getFullYear() == now.getFullYear() && date.getMonth() == now.getMonth() && date.getDate() >= now.getDate() && (date.getDay() > 0 && date.getDay() < 6)) 
 
\t \t \t return [true,""]; 
 
\t \t if (date.getFullYear() >= now.getFullYear() && date.getMonth() > now.getMonth() && (date.getDay() > 0 && date.getDay() < 6)) 
 
\t \t \t return [true,""]; 
 
\t \t if (date.getFullYear() > now.getFullYear() && (date.getDay() > 0 && date.getDay() < 6)) 
 
\t \t \t return [true,""]; 
 
\t \t return [false,""]; 
 
\t } 
 

 

 
jQuery("#datepicker").datepicker({ 
 
\t \t beforeShowDay: NotBeforeToday 
 
    });

enter image description here

यहाँ आज की तारीख 15 वीं सितम्बर मैं विकलांग शनिवार और रविवार है।

संबंधित मुद्दे