Bootstrap 中的开始日期和结束日期

Posted

技术标签:

【中文标题】Bootstrap 中的开始日期和结束日期【英文标题】:Start Date and End Date in Bootstrap 【发布时间】:2015-04-07 12:17:33 【问题描述】:

我正在使用 Bootstrap DatePicker。我想验证 From DateTo Date 。开始日期正确选择今天的日期。我有一个问题“到日期没有选择开始日期(即从日期值)”。如何解决?

  $(document).ready(function() 
    $('#fromDate').datepicker(
        startDate: new Date(),
    );

    $('#toDate').datepicker(
        startDate: $('#fromDate').val(),
    );
 );

【问题讨论】:

你能告诉我们你的问题到底是什么吗? To Date 不选择开始日期(即从日期值开始) 【参考方案1】:

在你设置$('#toDate').datepicker()的时候,$('#fromDate')的值是空的。

您应该在开头设置默认的startDateendDate 变量,并将changeDate 事件监听器添加到您的日期选择器。

例如:

// set default dates
var start = new Date();
// set end date to max one year period:
var end = new Date(new Date().setYear(start.getFullYear()+1));

$('#fromDate').datepicker(
    startDate : start,
    endDate   : end
// update "toDate" defaults whenever "fromDate" changes
).on('changeDate', function()
    // set the "toDate" start to not be later than "fromDate" ends:
    $('#toDate').datepicker('setStartDate', new Date($(this).val()));
); 

$('#toDate').datepicker(
    startDate : start,
    endDate   : end
// update "fromDate" defaults whenever "toDate" changes
).on('changeDate', function()
    // set the "fromDate" end to not be later than "toDate" starts:
    $('#fromDate').datepicker('setEndDate', new Date($(this).val()));
);

【讨论】:

使用默认格式但不使用自定义格式,任何人都可以提出解决方案 这里有一个问题,如果你删除盒子里的内容,旧的限制仍然存在。您还需要捕获文本框擦除场景。【参考方案2】:

如果用户首先点击 fromDate,则为 toDate 设置结束日期,如果用户首先点击 toDate,我们必须为 fromDate 设置开始日期。

如果需要,我们还必须提供日期格式。

$(document).ready(function()
   $("#fromDate").datepicker(
       format: 'dd-mm-yyyy',
       autoclose: true,
   ).on('changeDate', function (selected) 
       var minDate = new Date(selected.date.valueOf());
       $('#toDate').datepicker('setStartDate', minDate);
   );

   $("#toDate").datepicker(
       format: 'dd-mm-yyyy',
       autoclose: true,
   ).on('changeDate', function (selected) 
           var minDate = new Date(selected.date.valueOf());
           $('#fromDate').datepicker('setEndDate', minDate);
   );
);
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" rel="stylesheet"/>
<form autocomplete="off">
<input type="text" id="fromDate">
<input type="text" id="toDate">
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>

【讨论】:

以上是关于Bootstrap 中的开始日期和结束日期的主要内容,如果未能解决你的问题,请参考以下文章

开始日期和结束日期对齐

Bootstrap 4 Datepicker块日期范围

如何在 ACF 日期选择器中限制 Wordpress 中的开始日期和结束日期的两个日期?

从表中的开始日期和结束日期在 Postgres 中生成系列

UNNotificationRequest 中的开始和结束日期

如何根据 PL/pgSQL 中的开始日期和持续时间(工作日)获取结束日期?