2012-06-21 11 views
6

मेरे पास दो डेटपिकर्स कैलेंडर्स हैं, एक प्रारंभ तिथि के लिए, और दूसरा एक अंतिम तिथि के लिए।jQuery यूआई डेटपिकर: किसी अन्य डेटपिकर को 6 महीने जोड़ें

जो मैं चाहता हूं वह दूसरी तारीख के छह महीने बाद डायनामिक रूप से डिफ़ॉल्ट डेट सेट करना है, जब पहली तारीख चुनी जाती है।

मैं दूसरे datepicker को fisrt तारीख रिपोर्ट करने का तरीका पता है, लेकिन मैं पहली बार के लिए छह महीने जोड़ने के बारे में तो दूसरी datepicker

यहाँ की defaultdate के रूप में जोड़ें मेरी कोड है पता नहीं है:

$(".firstcal").datepicker({ 
    dateFormat: "dd/mm/yy", 
    onSelect: function (dateText, inst) { 
     var date = $.datepicker.parseDate('dd/mm/yy', dateText); 
     var $sec_date = $(".secondcal"); 
     $sec_date.datepicker("option", "defaultDate", date); 
    } 
}); 
$(".secondcal").datepicker({ 
    dateFormat: "dd/mm/yy" 
}); 

धन्यवाद आपकी मदद के लिए एक बहुत

संपादित करें:

datepicker में, छह महीने में जोड़ने के लिए कार्य करने के लिए एक तिथि मौजूद है: यह labele है डी "+ 6 एम"। मैं बस पहली तारीख में "+ 6 एम" जोड़ना चाहता हूं और इसे दूसरे की डिफ़ॉल्ट तिथि के रूप में भेजना चाहता हूं।

उत्तर

7
  1. एक जावास्क्रिप्ट में चयनित तिथि स्ट्रिंग पार्स तारीख वस्तु
  2. महीने बदलने के लिए Date.getMonth() और Date.setMonth() का उपयोग करें। बाद में कार्य आवश्यक होने पर वर्ष में स्वचालित रूप से वृद्धि/कमी करता है।
  3. दूसरी डेटपिकर की तारीख बदलने के लिए jQuery डेटपिकर की setDate विधि का उपयोग करें (defaultDate सेटिंग आपको वांछित परिणाम नहीं देगा)।
onSelect: function(dateText, instance) { 
    date = $.datepicker.parseDate(instance.settings.dateFormat, dateText, instance.settings); 
    date.setMonth(date.getMonth() + 6); 
    $(".secondcal").datepicker("setDate", date); 
} 

Demo here

+0

धन्यवाद सलमान ए! उत्तम ! –

0

यहां कोड है जिसका उपयोग मैं दूसरे संवाद की अधिकतम तिथि को पहले से एक महीने बाद सेट करने के लिए करता हूं। तो आप बस स्थापित करेगा डिफ़ॉल्ट दिनांक बजाय

var beginsDate=$('#dlg_begins').datepicker('getDate'); 
    var monthMillisec=30*24*60*60*1000; 
    var maxDate=new Date(); 
    maxDate.setTime(beginsDate.getTime() + monthMillisec); 

    $('#dlg_expires').datepicker('option', 
    { 
     'maxDate':maxDate, 
     'minDate':beginsDate 
    }); 
+0

धन्यवाद मैट, यह मुझे मदद करता है, लेकिन आंशिक रूप से: की वजह से हर महीने दिनों की एक ही राशि नहीं है, परिणाम गलत है। यदि मैं 15778463000 मिलीसेन्ड जोड़ता हूं (चुड़ैल 182.62 दिन है), जुलाई के पहले दिन के पहले 30 दिसंबर को जुलाई 2014 को सेट किया गया था –

2

एक तारीख को 6 महीने जोड़ने के लिए

var second_date = new Date(date); 
second_date.setMonth(second_date.getMonth()+6); //+6 is however many months 

तो मान अपडेट

$("#secondcal").val(second_date); //It is probably better to work with ID