更改选择器时不要更改时间

Don't change time when changing picker

在 v4.17.43 上

所以我有一个简单的选择器:

$('.datetimepicker .date-range-start').datetimepicker({
    format: 'YYYY-MM-DD HH:mm',
    maxDate:moment().endOf('day')
})

并且默认日期在 html 中设置为类似于“2016-10-31 00:00”

<input type="text" class="date-range-start" name="start" value="2016-10-31 00:00" />

但是每当您使用选择器更改日期时,时间都会更改为当前时间。我怎样才能让它保持 00:00 除非用户实际更改了选择器时间部分的时间。

我发现有人说 set useCurrent:'day' 但这对我来说没有任何改变。

您可以使用数据属性为选取器设置 defaultValue 而不是设置 value,这样您的输入就会有 data-date-default-date

您可以找到更多关于 data-* 初始化的信息 here and

这是一个工作示例:

$('.datetimepicker .date-range-start').datetimepicker({
    format: 'YYYY-MM-DD HH:mm',
    maxDate: moment().endOf('day')
})
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/css/bootstrap-datetimepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/locale/en-gb.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/js/bootstrap-datetimepicker.min.js"></script>

<div class='col-sm-6 datetimepicker'>
    <input type="text" class="form-control date-range-start" name="start" data-date-default-date="2016-10-31 00:00" />
</div>


请注意,如果您使用版本 4.17.37 的日期时间选择器,您的示例将按预期工作,如以下示例所示。也许你也可以考虑降级到以前版本的日期时间选择器。

$('.datetimepicker .date-range-start').datetimepicker({
    format: 'YYYY-MM-DD HH:mm',
    maxDate: moment().endOf('day')
})
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/locale/en-gb.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script>

<div class='col-sm-6 datetimepicker'>
    <input type="text" class="form-control date-range-start" name="start" value="2016-10-31 00:00" />
</div>