我正在使用Ruby + Bootstrap框架开发一个项目,包括Bootstrap datetimepicker插件。
我的表格中有一个字段:
<div class='datetimepicker-input input-group' id='logged_at'>
<input class='form-control' data-format='DD/MM/YYYY hh:mm A' name='logged_at' type='text' value='27/06/2014 05:08 PM'>
<span class='input-group-addon'>
<i class='fa fa-calendar'></i>
</span>
</input>
</div>
正如您所看到的,我希望我的datetimepicker使用DD/MM/YYYY hh:mm A
格式,但是,当我在value
标记的<INPUT>
属性中输入默认日期和时间时表单,然后点击日历图标以弹出选择器,选择器窗口只在标题中显示NaN
,并且不允许我选择日期或时间。
但是,如果我在生成表单时将value
属性留空,则弹出窗口工作正常。
我还注意到,如果我在字段中输入默认日期,并交换月份和日期,即MM/DD/YYYY hh:mm A
,则弹出窗口工作正常,即日历默认为正确的日期,但是当我选择日期时,输入字段中 显示 为DD/MM/YYYY hh:mm A
。
我想知道是否还有其他方法可以在字段中设置默认日期/时间?简单地填充value
属性似乎让插件混乱,因为它似乎想要以mm / dd / yyyy为单位的初始日期......但是很高兴将其显示为dd / mm / yyyy ......之后。
答案 0 :(得分:0)
好的,我想我已经把这个想出来了。它似乎与moment.js
有关,bootstrap-datetimepicker
依赖于日期解析。
在不搞乱语言选项的情况下, bootstrap-datetimepicker.js (第222行)中有一行必须更改:
if (dateStr) picker.date = moment(dateStr);
到
if (dateStr) picker.date = moment(dateStr, picker.format);
基本上我们必须使用picker.format
作为第二个参数来强制提及使用我们在INPUT字段中提供的格式来解析输入的日期。