0

我正在使用 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...。

4

1 回答 1

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 字段中提供的格式来解析输入的日期。

于 2014-06-27T13:09:18.427 回答