lilywong Posted May 9, 2006 Share Posted May 9, 2006 I have four textboxes, (txtDate1,txtDate2,txtDate3,txtDate4), when i key in in txtDate1, for example, 11/05/2006, the rest will automatically become 12/05/2006,13/05/2006,14/05/2006. however, if 14/05/2006 is sunday, it will need to skip that and become 15/05/2006. i need a function to differentiate whether the date is sunday, if it is, that need to be skipped.and the date format in (dd/mm/yyyy).In this case for example,1/1/2006 (friday)2/1/2006 (saturday)3/1/2006 (sunday)4/1/2006 (monday)5/1/2006 (tuesday)so the 3/1/2006 will be skipped.so txtDate1 will be 1/1/2006, txtDate2 will be 2/1/2006 , txtDate3 will be 4/1/2006 , txtDate4 will be 5/1/2006 .Just consider the user key in dd/mm/yyyy. (11/05/2006), but NOT mm/dd/yyyythanks you so much, need help urgently !~!~thank you so much ! Link to comment https://forums.phpfreaks.com/topic/9375-help-in-date-format/ Share on other sites More sharing options...
GBS Posted May 17, 2006 Share Posted May 17, 2006 Hi there,,That one was funny to script,,, :)Try it,,[code]<html><head><title>Dating,,</title><style>.datebox{ border: 1px solid gray; width:80px; background-color:#FAF9F0;}</style></head><body>Choose a date (format:dd/mm/yyyy) <input type="textbox" id="date1" class="datebox" onchange="populate_dates();"><br>1 day after: <div id="date2" class="datebox" > </div>2 days after: <div id="date3" class="datebox" > </div>3 days after: <div id="date4" class="datebox" > </div>with Sundays skipped :)<script>var dateParsePatterns = [ // dd/mm/yyyy { re: /(\d{1,2})\/(\d{1,2})\/(\d{4})/, handler: function(bits) { var d = new Date(); d.setDate(parseInt(bits[1])); d.setYear(bits[3]); if ((parseInt(bits[2]) == 0) || (parseInt(bits[2]) > 12) || (parseInt(bits[1]) == 0) || (parseInt(bits[1]) > 31)) { d="Invalid date"; } else { d.setMonth(parseInt(bits[2])-1); // Because months indexed from 0 } return d; } },];function parseDateString(s){ var re = dateParsePatterns[0].re; var handler = dateParsePatterns[0].handler; var bits = re.execu(s); if (bits) { return handler(bits); }return "Invalid date";}function populate_dates(){var date1 = document.getElementById('date1').value;control=parseDateString(date1);if (control=="Invalid date") { document.getElementById('date2').innerHTML=control; document.getElementById('date3').innerHTML=control; document.getElementById('date4').innerHTML=control; }else { print_next_dates(control) var temps = control; }}function print_next_dates(temps){for (i=2;i<5;i++) { temps.setDate(temps.getDate() + 1); // adding 1 day to the date if (temps.getDay() == 0) // skipping the sundays (cause 0 means sunday, using the getDay function) { temps.setDate(temps.getDate() + 1); } var nextday = temps.getDate(); // getting the day (05/12/2005 gives 5) var nextmonth = temps.getMonth()+1; // getting the month (05/12/2005 gives 12) var nextyear = temps.getFullYear(); // getting the full year (05/12/2005 gives 2005) if (nextday<10) { nextday = "0"+nextday; // adding a '0' before the single number } if (nextmonth<10) { nextmonth = "0"+nextmonth; // adding a '0' before the single number } eval("document.getElementById('date"+i+"').innerHTML='"+nextday+"/"+nextmonth+"/"+nextyear+"'"); // populating }}document.getElementById('date1').value=''; //needed for firefox</script></body></html>[/code]nb: you have to remove the 'u' in the line > var bits = re.execu(s);Hoping it helps,,l8tr,, Link to comment https://forums.phpfreaks.com/topic/9375-help-in-date-format/#findComment-36692 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.