Bootstrap DateTimePicker 格式

Bootstrap DateTimePicker format

我正在编写一个 MVC 5 互联网应用程序,并在视图中使用 bootstrap-datetimepicker

我的应用程序正在国际上使用,我想格式化 datetimepicker 以使其具有适合每个用户的正确格式。我有每个用户的文化和时区,将 datetimepicker 格式化为正确用户格式的最佳方法是什么?我应该使用格式 属性、语言环境还是其他技术?

我目前正在从 Culture 对象中获取 DateTimeFormat 对象。这具有以下值:

ShortDatePattern

ShortTimePattern

然后我尝试按如下方式设置日期时间选择器:

$(function () {
    $('#displayMapLocationStartDate').datetimepicker(
    {
        format: '**combination of culture object**',
    });
});

这是为日期时间选择器编写代码以使其具有适合每个不同用户文化的正确格式的最佳方式吗?如果没有,应该怎么做?

提前致谢。

Bootstrap 日期时间选择器在内部使用 Moment.js 进行格式化,Moment 的格式化代码与 .NET 的不同。例如,.NET 使用 dd 表示带有前导数字 (01...31) 的日期,但 Moment 使用 DD 表示相同的事情。因此,您在上面发布的代码将无法按预期工作。

您需要编写一个翻译方法,该方法接受 .NET date/time 格式字符串并吐出一个与 Moment 兼容的版本,然后您可以在设置 datetimepicker.format 属性.

如果您查看 the Momentjs docs,您会发现它们提供区域设置感知格式标记 L(日期)和 LT(时间)。

这两个标记都是选择器 format 设置接受的字符串。

只要您将 moment-with-locales.jsmoment.js 包含在正确的语言环境文件中,您就可以使用任一标记来执行您想要的操作。

$('#displayMapLocationStartDate').datetimepicker(
{
    format: 'L',
});