JQueryui DatePicker,日期范围限制为今年



我已经花了最后几个小时修补并在没有运气的情况下寻找答案,但是我相信这对这里的某些人来说很简单。

我希望在"日期范围"模式下使用jqueryui的datepicker,但是我想限制只能选择今年的日期。我还想将日期格式从mm/dd/yy更改为dd/mm/yy。

我将发布原始代码,因为我在发布任何失败的努力时都没有任何价值。

希望有人能帮助我,谢谢。

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Select a Date Range</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
var dateFormat = "mm/dd/yy",
from = $( "#from" )
.datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3
})
.on( "change", function() {
to.datepicker( "option", "minDate", getDate( this ) );
}),
to = $( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3
})
.on( "change", function() {
from.datepicker( "option", "maxDate", getDate( this ) );
});
function getDate( element ) {
var date;
try {
date = $.datepicker.parseDate( dateFormat, element.value );
} catch( error ) {
date = null;
}
return date;
}
} );
</script>
</head>
<body>

根据您的需要调整代码:

$(function() {
    var year = (new Date).getFullYear();
    $( "#from" ).datepicker({
        minDate: new Date(year, 0, 1),
        maxDate: new Date(year, 11, 31)
    });
});

var from = $('#from').datepicker({ dateFormat: 'dd-mm-yy' }).val();

原始帖子:这里和这里

在您的特定示例中,可以这样应用(未经测试的我没有完整的代码/CSS(:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Select a Date Range</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script>
    $( function() {
        var year = (new Date).getFullYear();
        from = $( "#from" ).datepicker({
            minDate: new Date(year, 0, 1),
            maxDate: new Date(year, 11, 31),
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3
        })
        .on( "change", function() {
            $( "#to" ).datepicker( "option", "minDate", new Date($("#from").datepicker().val() )); // You set the min date of `to` to be the selected date here
        }),
        to = $( "#to" ).datepicker({
            maxDate: new Date(year, 11, 31), // minDate has already been set
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3
        });
        function getDate( element ) {
            var date;
            try {
                date = $(element).datepicker({ dateFormat: 'dd-mm-yy' }).val();
            } catch( error ) {
                date = null;
            }
            return date;
        }
    });
</script>
</head>
<body>
<!-- dummy datepickers -->
<div id="from"></div> 
<div id="to"></div> 
<!-- It is a good practice to import scripts at the end of your page, helps to render quicker the DOM -->
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</body>
</html>

希望它有帮助;(

最新更新