मैं एक datepicker है जहाँ मैं दो महीने दिखाने के है और मैं बेतरतीब ढंग से प्रत्येक दिखाई महीनेसुरुचिपूर्ण विधि दो तिथियों
$('.date').datepicker({
minDate: new Date(),
dateFormat: 'DD, MM, d, yy',
constrainInput: true,
beforeShowDay: processDates,
numberOfMonths: 2,
showButtonPanel: true,
showOn: "button",
buttonImage: "images/calendar_icon.jpg",
buttonImageOnly: true
});
यहाँ में 3 दिनांकों का चयन करना चाहते भीतर यादृच्छिक तिथियों की सरणी उत्पन्न करने के लिए मेरी गणना है
var now = new Date();
var nowTime = parseInt(now.getTime()/1000);
var randomDateSet = {};
function getRandomSet(y,m) {
var monthIndex = "m"+y+""+m; // m20121 for Jan
if (randomDateSet[monthIndex]) return randomDateSet[monthIndex];
// generate here
.
. - I need this part
.
return randomDateSet[monthIndex];
}
function processDay(date) { // this is calculated for each day so we need a singleton for the array
var dateTime = parseInt(date.getTime()/1000);
if (dateTime <= (nowTime-86400)) {
return [false]; // earlier than today
}
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
var randomDates = getRandomSet(y,m);
for (i = 0; i < randomDates.length; i++) {
if($.inArray((m+1) + '-' + d + '-' + y,randomDates) != -1 || new Date() > date) {
return [true,"highlight","Some message"];
}
}
return [true,"normal"]; // ordinary day
}
शायद - क्या आप इसे 3 महीने के लिए प्रत्येक महीने में ओवरलैप किए बिना कर सकते हैं? – mplungjan
* ओवरलैप * क्या आपका मतलब एक ही तारीख उत्पन्न करना है? नहीं, यह कोड ** नहीं ** ** इस मामले को संभालता है, सैद्धांतिक रूप से यह उसी तारीख को उत्पन्न कर सकता है (विशेष रूप से जब आप समय कम करते हैं)। लेकिन डुप्लिकेट से छुटकारा पाने में मुश्किल नहीं होनी चाहिए। –
किसी तारीख को प्राप्त करने के लिए (या उसके बाद) दिनांक प्राप्त करने के लिए संबंधित फ़ंक्शन: 'फ़ंक्शन यादृच्छिकडेटाफर्टडेट (प्रारंभ, दिन) { नई तिथि (start.getTime() + (Math.random() * दिन * 24 * 60 * 60 * 1000)); } ' –