Jquery Datepicker仅在周一至周五返回

时间:2013-05-30 17:07:06

标签: jquery datepicker jquery-ui-datepicker

我正在尝试做什么:
我正在尝试创建一个日期选择器,当选择日期时,它将返回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标签)。

感谢任何帮助,提前谢谢。

样本: http://jsfiddle.net/mpoisel/LDaXa/

1 个答案:

答案 0 :(得分:1)

这就是我要去做的事情......

此外,关于填充其他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
    });
});

样本: http://jsfiddle.net/dirtyd77/h2VdQ/4/