[英]I want to know function AddWeekDays() in my coding how it works
This is my coding:- 这是我的编码:
<script type="text/javascript">
var $cal = jQuery.noConflict();
$cal(function () {
var dateMin = new Date();
var weekDays = AddWeekDays(4);
dateMin.setDate(dateMin.getDate() + weekDays);
var natDays = [
[1, 1, 'uk'],
[5,27,'uk'],
/*[6,25,'uk'],
[6,26,'uk'],
[7,15,'uk'],
[7,23,'uk'],
[7,11,'uk'],*/
[12, 25, 'uk'],
[12, 26, 'uk']
];
function noWeekendsOrHolidays(date) {
var noWeekend = $cal.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
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, ''];
}
function AddWeekDays(weekDaysToAdd) {
var daysToAdd = 0
var mydate = new Date()
var day = mydate.getDay()
weekDaysToAdd = weekDaysToAdd - (5 - day)
if ((5 - day) < weekDaysToAdd || weekDaysToAdd == 1) {
daysToAdd = (5 - day) + 2 + daysToAdd
} else { // (5-day) >= weekDaysToAdd
daysToAdd = (5 - day) + daysToAdd
}
while (weekDaysToAdd != 0) {
var week = weekDaysToAdd - 5
if (week > 0) {
daysToAdd = 7 + daysToAdd
weekDaysToAdd = weekDaysToAdd - 5
} else { // week < 0
daysToAdd = (5 + week) + daysToAdd
weekDaysToAdd = weekDaysToAdd - (5 + week)
}
}
return daysToAdd;
}
$cal('#required_ship_date').datepicker(
{
inline: true,
beforeShowDay: noWeekendsOrHolidays,
altField: '#required_ship_date',
//showOn: "button",
dateFormat: "mm/dd/yy",
// firstDay: 1,
changeFirstDay: false,
minDate: dateMin,
//buttonImageOnly: true,
// buttonImage: "http://www.papercraftproducts.com/skin/frontend/default/default/images/grid-cal.gif",
});
$cal("#required_ship_date").datepicker("setDate", weekDays);
});
</script>
<li>
<label for="custom[required_ship_date]"><?php echo $this->__('Required Ship Date (Optional)')?></label>
<div class="input-box" >
<div id="datepicker"> </div>
<input type="text" value="" class="input-text input-text1" title="custom[required_ship_date]" name="custom[required_ship_date]" id="required_ship_date" autocomplete="off">
</div>
</li>
Here is my screenshot:- 这是我的屏幕截图:
i want the thing is that today is 13-6-2013 suppose then after 4 days it will 19-6-2013. 我要说的是,今天是2013年6月13日,假设4天后会是2013年6月19日。 then in textbox 19-6-2013 will be display and day before last day should be enable in calender ie 18-6-2013. 然后将在文本框19-6-2013中显示,并应在日历中启用前一天的前一天,即18-6-2013。 In my case,in textbox 19-6-2013 is coming but in calender display 18 is disabled :( 以我为例,在19-6-2013文本框中,但在日历显示18中已禁用:(
if suppose today date is 14-6-2013 then after 4 days 20-6-2013 will come in textbox and in calendar 19-6-2013 should be enable.. 如果假设今天的日期是2013年6月14日,则在4天后的20-6-2013将出现在文本框中,并应启用日历19-6-2013。
plz help me in this as soon as possible 请尽快帮助我 thanks in advance 提前致谢
I did not completely understood what you are trying to do, but if you want the range to start one day before the selected day, just minus 1 your calculated start day: 我不完全了解您要执行的操作,但是如果您希望范围从所选日期的前一天开始,请减去计算出的开始日期1:
dateMin.setDate(dateMin.getDate() + weekDays-1);
IN this calendar if you select any date then it works perfectly as i needed plz see.and dont forget to accept my answer..:) Here is my coding:- 在这个日历中,如果您选择任何日期,那么它会完美地工作,因为我需要我看。不要忘了接受我的回答.. :)这是我的编码:-
<link type="text/css" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css" /><script type="text/javascript" src="http://www.papercraftproducts.com/skin/frontend/default/theme380/js/jquery-ui.js"></script>
<script type="text/javascript">
var $cal = jQuery.noConflict();
$cal(function () {
var dateMin = new Date();
var weekDays = AddWeekDays(5);
var day = dateMin.getDay()
if(weekDays==9 && day==6)
{
dateMin.setDate(dateMin.getDate() + weekDays-12);
}
if(weekDays==7 && day==1)
{
dateMin.setDate(dateMin.getDate() + weekDays-3);
}
else
{
dateMin.setDate(dateMin.getDate() + weekDays-1);
}
var natDays = [
[1, 1, 'uk']
];
function noWeekendsOrHolidays(date) {
var noWeekend = $cal.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
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, ''];
}
function AddWeekDays(weekDaysToAdd) {
var daysToAdd = 0
var mydate = new Date()
var day = mydate.getDay()
weekDaysToAdd = weekDaysToAdd - (5 - day)
if ((5 - day) < weekDaysToAdd || weekDaysToAdd == 1) {
daysToAdd = (5 - day) + 2 + daysToAdd
} else { // (5-day) >= weekDaysToAdd
daysToAdd = (5 - day) + daysToAdd
}
while (weekDaysToAdd != 0) {
var week = weekDaysToAdd - 5
if (week > 0) {
daysToAdd = 7 + daysToAdd
weekDaysToAdd = weekDaysToAdd - 5
} else { // week < 0
daysToAdd = (5 + week) + daysToAdd
weekDaysToAdd = weekDaysToAdd - (5 + week)
}
}
return daysToAdd;
}
$cal('#required_ship_date').datepicker(
{
inline: true,
beforeShowDay: noWeekendsOrHolidays,
altField: '#required_ship_date',
//showOn: "button",
dateFormat: "mm/dd/yy",
// firstDay: 1,
changeFirstDay: false,
minDate: dateMin,
//buttonImageOnly: true,
// buttonImage: "http://www.papercraftproducts.com/skin/frontend/default/default/images/grid-cal.gif",
});
var mydate = new Date();
var day = mydate.getDay();
if(day==6)
{
$cal("#required_ship_date").datepicker("setDate", 6);
}
else if(day==2)
{
$cal("#required_ship_date").datepicker("setDate", 7);
}
else
{
$cal("#required_ship_date").datepicker("setDate", weekDays);
}
});
</script>
<li>
<label for="custom[required_ship_date]"><?php echo $this->__('Required Ship Date (Optional)')?></label>
<div class="input-box" >
<div id="datepicker"> </div>
<input type="text" value="" class="input-text input-text1" title="custom[required_ship_date]" name="custom[required_ship_date]" id="required_ship_date" autocomplete="off">
</div>
</li>
here is the screenshot:- if today's date is 13-6-2013(thursday) 这是屏幕截图:-如果今天的日期是2013年6月13日(星期四)
If today's date is 14-6-2013(friday) 如果今天的日期是2013年6月14日(星期五)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.