更改选择器时不要更改时间
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>
在 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>