我正在尝试做什么:
我正在尝试创建一个日期选择器,当选择日期时,它将返回2天或48小时后的日期,仅在工作周(周一至周五)的另一个输入字段中。
我找到了一个教程Here这让我最重要的是,除了当你选择一个星期五的日期时,它会返回星期日,因为它不属于工作周而不会工作。
我需要它返回这样的内容:
如果周一返回下周三的日期
如果周二返回下周四的日期
如果周三返回下周五的日期
如果周四返回下周一的日期
如果周五返回下周二的日期
如果周六返回下周二的日期
如果周日返回下周二的日期
到目前为止这是代码:
<input id="datepicker" type="text">
<p id="dateoutput"></p>
<script type="text/javascript">
$(function() {
$("#datepicker").datepicker({
dateFormat: "mm-dd-yy",
onSelect: function(dateText, inst) {
var date = $.datepicker.parseDate(inst.settings.dateFormat || $.datepicker._defaults.dateFormat, dateText, inst.settings);
var dateText1 = $.datepicker.formatDate("D, mm-dd-yy", date, inst.settings);
date.setDate(date.getDate() + 2);
var dateText2 = $.datepicker.formatDate("D, mm-dd-yy", date, inst.settings);
$("#dateoutput").html(dateText2);
}
});
});
</script>
我遇到的另一个问题是将返回的日期填入另一个输入字段。 (现在它只是填充一个p标签)。
感谢任何帮助,提前谢谢。
答案 0 :(得分:1)
这就是我要去做的事情......
首先,我会将beforeShowDay
选项设置为$.datepicker.noWeekends
(因为周末基本没用)。
接下来,使用onSelect
并根据用户的选择使用.getDay()
。如果日期是星期四( 4 )或星期五( 5 ),请制作addDays = 4
4天=(2天+周六+周日)。
最后,使用$.datepicker.formatDate(format, date, settings)
,您就可以开始了!
此外,关于填充其他input
的问题,请务必使用.val()
。
<小时/> DEMO: http://jsfiddle.net/dirtyd77/Qt6QB/
$(function () {
$("#datepicker").datepicker({
dateFormat: "mm-dd-yy",
beforeShowDay: $.datepicker.noWeekends, //disables weekends
onSelect: function (dateText, inst) {
var date = new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay);
var day = date.getDay();
var addDays = 2;
if(day === 4 || day === 5){
addDays = 4;
}
var nextDate = new Date(date.setDate(date.getDate() + addDays));
//for p, use .html() or .text()
$("#dateoutput1").html($.datepicker.formatDate('D, mm-dd-yy', nextDate));
//for input, use .val()
$("#dateoutput2").val($.datepicker.formatDate('D, mm-dd-yy', nextDate));
}
});
});
如果您有任何其他问题,请与我们联系!快乐的编码!
修改强>
以下是您提供的新demo。
要根据星期几更改minDate
,请尝试执行以下操作:
$(function () {
var today = new Date(); //today's date
var minDate;
if(today.getDay() < 4){
minDate = new Date(today.setDate(today.getDate() + 2));
}else{
minDate = new Date(today.setDate(today.getDate() + 4));
}
$("#datepicker2").datepicker({
minDate: minDate,
dateFormat: "mm-dd-yy",
beforeShowDay: $.datepicker.noWeekends
});
});