我想在3个工作日内添加新日期。例如,如果用户选择星期三,那么它应该显示星期一。星期四,它应该显示星期二,星期五应该显示星期三。以下是代码:
JQUERY:
$(function () {
$('.one').datepicker();
$('#data').on('change', '.one', function (date) {
var date2 = $(this).datepicker('getDate');
date2.setDate(date2.getDate() + 3);
$(this).parent('td').next('td').find('.two').datepicker('setDate', date2);
});
$('.two').datepicker();
});
答案 0 :(得分:1)
如果您能清楚地描述情况,则可以轻松编写逻辑。
如果最初的一天是:
,那么多少个日历日是3个工作日回答这个问题,你会想出这样的逻辑:
var day = date2.getDay();
if (day == 3 /* wed */ || day == 4 /* thur */ || day == 5 /* fri */) {
date2.setDate(date2.getDate() + 5); // 3 days + 2 weekend days!
} else if (day == 6 /* sat */) {
date2.setDate(date2.getDate() + 4); // 3 days + 1 weekend day!
} else { /* either sun, mon, or tue */
date2.setDate(date2.getDate() + 3); // 3 days
}
答案 1 :(得分:0)
请尝试以下代码。
$(function () {
$('.one').datepicker();
$('#data').on('change', '.one', function (date) {
var date2 = $(this).datepicker('getDate');
date2.setDate(date2.getDate() + 3);
var day2=date2.getDay(); //0=Sun, 1=Mon, .., 6=Sat
if(day2==0 || day2==6){
date2.setDate(date2.getDate()+2);
}
$(this).parent('td').next('td').find('.two').datepicker('setDate', date2);
});
$('.two').datepicker();
});
答案 2 :(得分:0)
试试这个,
var date=new Date();
cday=date.getDay();
var addDays;
switch(cday){
case 0: // case sunday
case 6: // case saturday
addDays=4;break;
case 3: // case wednesday
case 4: // case thursday
case 5: // case friday
addDays=5;break;
default:
addDays=3;// for Monday and Tuesday
}
alert('New date: \n'+new Date(date.setDate(date.getDate()+addDays)));