【问题标题】:jquery datepicker get date rangejquery datepicker 获取日期范围
【发布时间】:2013-09-14 13:09:25
【问题描述】:

我正在使用 jQuery datepicker 来选择日期范围。下面的代码获取日期范围的开始日期input1 和结束日期input2。但是我如何简单地获得两者之间的日期?感谢您的建议!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <link type="text/css" href="../demoengine/demoengine.css" rel="stylesheet">
    <script type="text/javascript" src="../demoengine/demoengine.js" async defer></script>
    <title>jQuery UI Datepicker: Using Datepicker to Select Date Range</title>
    <link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/themes/ui-darkness/jquery-ui.css" rel="stylesheet">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.min.js"></script>
    <style type="text/css">
        .dp-highlight .ui-state-default {
            background: #484;
            color: #FFF;
        }
    </style>
</head>
<body>
    <div id="datepicker"></div>
    <p>
        Dates:
        <input type="text" id="input1" size="10">
        <input type="text" id="input2" size="10">
    </p>
    <script type="text/javascript">
        $(function() {
            $("#datepicker").datepicker({
                beforeShowDay: function(date) {
                    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
                    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
                    return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
                },
                onSelect: function(dateText, inst) {
                    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
                    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
                    if (!date1 || date2) {
                        $("#input1").val(dateText);
                        $("#input2").val("");
                        $(this).datepicker("option", "minDate", dateText);
                    } else {
                        $("#input2").val(dateText);
                        $(this).datepicker("option", "minDate", null);
                    }
                }
            });
        });
    </script>
</body>
</html>

【问题讨论】:

    标签: javascript jquery datepicker


    【解决方案1】:

    为了获取 date1 和 date2 之间的日期,您只需在 for 循环中添加一天,直到到达结束日期。 date 对象提供了一个 setDate 方法,该方法允许超出月末(如 8 月 32 日,只是为您将其包装到 9 月 1 日)。

    for(; date1 < date2; date1.setDate(date1.getDate() + 1)) {
        alert(date1);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 2013-04-16
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多