如何根据当前输入值在Bootstrap 3日期/时间选择器中设置默认日期,以便在首次使用时显示

时间:2016-10-14 12:36:38

标签: javascript twitter-bootstrap-3 eonasdan-datetimepicker

我正在尝试将Bootstrap 3 Date/Time Picker v4.17.42集成到网页中。我有一个文本字段,在调用datepicker之前预先填充了日期。

该字段如下;

<input value="19/02/1986" class="form-control datepicker" type="text" name="patient[date_of_birth]" id="patient_date_of_birth">

我像这样调用datepicker;

$('.datepicker').datetimepicker({
format: 'DD/MM/YYYY',
useCurrent: false,
maxDate: new Date(),
minDate: now.setFullYear(now.getFullYear() - 110)

});

当我在文本字段中单击时,会出现日期选择器,但它会显示当前月份而不是1986年2月。如果我单击该字段然后返回,则日期选择器消失,然后重新出现设置正确到1986年2月。

我必须做什么才能在第一次打开日期选择器时出现正确的月份?

3 个答案:

答案 0 :(得分:0)

您可以在初始化后以编程方式强制刷新:

$('.datepicker').datetimepicker('setDate', new Date(1986, 02, 19));
$('.datepicker').datetimepicker('update');

您还可以在初始化时向对象添加属性:

 setDate: new Date(1986, 02, 19)

答案 1 :(得分:0)

要使用默认数据,请尝试使用

$("#datepicker").datepicker("setDate", new Date());

在此脚本中,new Date()返回将分配给setDate属性的当前值。

答案 2 :(得分:0)

就像你说的,这是最新版本中的一个错误,在这里跟踪:github.com/Eonasdan/bootstrap-datetimepicker/issues/1831

但是,我发现在此期间可能会有所帮助(如果您不想使用版本4.17.37):

var selectedDate = moment($('#patient_date_of_birth').val(), 'DD/MM/YYYY');
$('#patient_date_of_birth').data('DateTimePicker').viewDate(selectedDate);

在日期选择器初始化后执行此操作。

这是需要为这个特定的datepicker硬刷新视图的语法。您可以通过data('DateTimePicker')访问选择器,viewDate()方法会更新选择器显示的日期。