【问题标题】:Bootstrap datetime picker remove meridian am/pm引导日期时间选择器删除经络上午/下午
【发布时间】:2018-04-06 12:00:47
【问题描述】:

我正在使用 asp.net MVC TextBoxFor 绑定 bootstrap-datetimepicker。它适用于简单的输入类型文本框。

但是当我将它与 mvc 文本框助手绑定时,它会显示错误的年份,例如 '31/10/1899 00:00'

然后我在某个地方找到了解决方案。

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

它工作正常,但现在它在最后添加了经络,例如 AM/PM。我需要删除那些 AM/PM。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我试过了,但正如我上面提到的,它把年份改为 1899 年 12 月。
    【解决方案2】:

    试试这个:

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

    【讨论】:

    • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。一个正确的解释would greatly improve 其长期价值,通过展示为什么这是解决问题的好方法,并将使其对未来有其他类似问题的读者更有用。请edit您的回答添加一些解释,包括您所做的假设。
    【解决方案3】:

    正如前面两个答案所说,要删除经络,您可以结合使用 format 和 showMeridian 用法:

    $('.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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      相关资源
      最近更新 更多