【问题标题】:Jquery Datepicker returning Monday-Friday onlyJquery Datepicker 仅在周一至周五返回
【发布时间】:2013-05-30 17:07:05
【问题描述】:

我想要做什么:
I'm trying to create a datepicker that when a date is selected it will return a date 2 days or 48 hours later, only during a work week (Monday-Friday) in another input field.

我找到了一个教程 Here 这让我大部分时间都受益,除了当你选择一个周五的日期时,它会返回周日,因为它不是工作周的一部分,所以它不起作用。

我需要它返回如下内容:
if Monday 返回下周三的日期
如果星期二返回下星期四的日期
如果星期三返回下星期五的日期
if Thursday 返回下周一的日期
if Friday 返回下周二的日期
如果周六返回下周二的日期
if Sunday 返回下周二的日期

这是目前的代码:

<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/

【问题讨论】:

  • 你能提供一个jsfiddle example吗?
  • 如果您想要了解公共/银行假期的内容,这将变得很困难......
  • 其实我现在并不关心假期。
  • 抱歉,我必须创建一个 jsfiddle 帐户。这是http://jsfiddle.net/mpoisel/LDaXa/
  • @user2437336 你想在周六/周日也能点击吗?还是你想让他们禁用?

标签: jquery datepicker jquery-ui-datepicker


【解决方案1】:

这就是我的处理方式......

另外,关于填充另一个input 的问题,请务必使用.val()


演示: 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/

【讨论】:

  • 太棒了!非常感谢您的帮助。
  • 其实我还有一个问题。有没有办法有条件地设置 minDate,这样如果是星期五,您将无法在日期选择器中选择星期一或星期二?
  • 其他日子的minDate 是什么?你有我可以看的演示吗?
  • 给你jsfiddle.net/mpoisel/h2VdQ。我基本上想要+2的默认minDate,但如果是星期四或星期五,则minDate为+4
  • @Mike 更新了我的答案,如果您还有其他问题,请告诉我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多