Bootstrap日期时间选择器删除子午线上午/下午

时间:2017-10-25 11:50:21

标签: javascript jquery asp.net asp.net-mvc smalot-datetimepicker

我正在使用asp.net MVC TextBoxFor来绑定bootstrap-datetimepicker。它与简单的输入类型文本框一起工作正常。

但是当我用mvc textbox helper绑定它时,它显示错误的年份'31/10/1899 00:00'

然后我找到了解决问题的方法。

$('.datetimepicker').datetimepicker({
    format: "dd-mm-yyyy hh:ii:00P",
    autoclose: true
});

它工作正常,但现在它在最后添加经线像AM / PM。我需要删除那些AM / PM。 enter image description here

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

只需删除foramt变量末尾的P,见下文

format: "dd-mm-yyyy hh:ii:00",

答案 1 :(得分:0)

试试这个:

$('.datetimepicker').datetimepicker({
            autoclose: true,
            showMeridian:false
        });

答案 2 :(得分:0)

如前两个答案所述,要删除子午线,您可以结合使用formatshowMeridian

$('.datetimepicker').datetimepicker({ 
    format: "dd-mm-yyyy hh:ii:00",
    autoclose: true,
    showMeridian: false
});

然而,当datepicker失去焦点而没有选择任何东西或做出不完整的选择时会出现一个小故障,它会将日期恢复到1899年12月31日(转载于this example fiddle)。我设法检查bootstrap-datetimepicker.js文件并找到导致此行为的parseDate函数:

parseDate: function (date, format, language, type, timezone) {
    var parts = date && date.toString().match(this.nonpunctuation) || [],
        // this line below represents December 31, 1899 (try using console.log)
        date = new Date(0, 0, 0, 0, 0, 0, 0), 
        // -- skipped for brevity --
    val, filtered, part;
    // -- skipped for brevity --
}

通过将date分配更改为当前日期,可以进行一些调整:

parseDate: function (date, format, language, type, timezone) {
    var parts = date && date.toString().match(this.nonpunctuation) || [],
        date = new Date(),
        // -- skipped for brevity --
    val, filtered, part;
    // -- skipped for brevity --
}

注意:此调整仅适用于非CDN脚本(通过NuGet包安装或手动放置在Scripts文件夹中)。

相关问题:

Issue #494: Date set to '31 Dec 1899 00:00' when focus lost without selecting date

Issue #153