minDate 没有被设置?
Posted
技术标签:
【中文标题】minDate 没有被设置?【英文标题】:minDate is not being set? 【发布时间】:2020-01-05 05:24:58 【问题描述】:我有这个以前用过的 jQuery UI 日期选择器。由于某种原因,它不适用于这个项目。它正确打印日期,我根本不明白为什么它不起作用。
我已经设法让它以某种方式对更改做出反应,但如果我将日期设置为 11 日之后,它不会让我在第二个日期选择器中更改任何内容。如果我在 11 号之前选择一个日期,它不会设置 minDate(或者不是我能看到的)
我可以通过控制台记录它并返回正确的格式。
从旧项目中尝试了我的旧代码。它在这里不起作用,但在另一个项目上它起作用?
我尝试在日期选择器上使用“销毁”。 我尝试将其设置为选项。 我尝试从 onSelect 之外的函数设置思维导图。
// Check for changes in dates
jQuery('.project--create-datestart, .project--create-dateend').datepicker(
language: 'da',
dateFormat: 'dd-mm-yyyy',
onSelect: function(formattedDate, date, inst)
jQuery('.project--create-dateend').datepicker("destroy");
jQuery('.project--create-dateend').datepicker( minDate: new Date(formattedDate))
jQuery('.project--create-button').attr('disabled', false);
jQuery('.project--create-button').addClass('success');
needToConfirm = true;
)
我需要让第一个日期选择器在第二个日期选择器上设置 minDate。
【问题讨论】:
你试过console.log(new Date(formattedDate))
吗?我希望它将天解析为月,将月解析为天。您使用的日期选择器是否与 this one 不同?我试图重现您的问题,但这需要dateFormat: 'dd-mm-yy'
@barbsan 是的。它以正确的格式 dd-mm-yyyy 输出日期。在开始日期选择器和结束时。就像第二个(结束)日期选择器只是不想听......
new Date("dd-mm-yyyy")
返回Date,月份设置为dd,day设置为mm,我没有问formattedDate
的格式是否正确,我让你看一下Date对象
【参考方案1】:
$(".project--create-datestart").datepicker(
dateFormat: 'dd-mm-yyyy',
changeMonth: true,
minDate: new Date(),
maxDate: '+2y',
language: 'da',
onSelect: function(date)
var selectedDate = new Date(date);
var msecsInADay = 86400000;
var endDate = new Date(selectedDate.getTime() + msecsInADay);
//Set Minimum Date of project--create-dateend After Selected Date of project--create-datestart
$(".project--create-dateend").datepicker( "option", "minDate", endDate );
$(".project--create-dateend").datepicker( "option", "maxDate", '+2y' );
);
$(".project--create-dateend").datepicker(
dateFormat: 'dd-mm-yyyy',
changeMonth: true
);
【讨论】:
对我来说它返回 TypeError: t.getFullYear is not a function 它应该可以工作。单独试试这个。 var start = new Date(document.getElementById('project--create-dateend').value); var y = start.getFullYear();【参考方案2】:你可以试试这些代码可能对你有帮助。
<div class="col-sm-4 form-group">
<b>From :*</b><br>
<p><input title="From Date" placeholder="dd/mm/yyyy" class="form-control fromDate" oninput="this.className = ''" name="fromDate" id="fromDate"></p>
</div>
<div class="col-sm-4 form-group">
<b>To :*</b><br>
<p><input title="To Date" placeholder="dd/mm/yyyy" class="form-control toDate" oninput="this.className = ''" name="toDate" id="toDate"></p>
</div>
<script type="text/javascript">
jQuery(document).ready(function()
defaultDateValidation();
);
function defaultDateValidation()
$(".fromDate").datepicker(
dateFormat: "dd/mm/yy"
);
$(".toDate").datepicker(
dateFormat: "dd/mm/yy"
);
$(".fromDate").change(function()
test = $(this).datepicker('getDate');
testm = new Date(test.getTime());
testm.setDate(testm.getDate() + 1);
$(".toDate").datepicker("option", "minDate", testm);
);
</script>
【讨论】:
【参考方案3】:尝试setStartDate
而不是minDate
【讨论】:
以上是关于minDate 没有被设置?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DatePickerDialog 中的 minDate 设置为 2 天后
在javascript中为datepicker设置maxDate和minDate,不起作用
在 DatePicker 上设置 MinDate 会将 CalendarView 移动到 1964