我正在使用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。
任何帮助都将不胜感激。
答案 0 :(得分:2)
只需删除foramt变量末尾的P,见下文
format: "dd-mm-yyyy hh:ii:00",
答案 1 :(得分:0)
试试这个:
$('.datetimepicker').datetimepicker({
autoclose: true,
showMeridian:false
});
答案 2 :(得分:0)
如前两个答案所述,要删除子午线,您可以结合使用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