我正在编写一个MVC 5互联网应用程序,并在视图中使用bootstrap-datetimepicker。
我的应用程序正在国际上使用,我想格式化日期时间选择器,以便为每个用户设置正确的格式。我有每个用户的文化和时区,如何将日期时间选择器格式化为正确的用户格式的最佳方法是什么?我应该使用 format 属性、区域设置还是其他技术?
我当前正在从Culture
对象获取DateTimeFormat
对象。这具有以下值:
ShortDatePattern
ShortTimePattern
然后,我尝试按如下方式设置日期时间选择器:
$(function () {
$('#displayMapLocationStartDate').datetimepicker(
{
format: '**combination of culture object**',
});
});
这是编写日期时间选取器代码以适合每个不同用户区域性的正确格式的最佳方法吗?如果没有,应该怎么做?
提前谢谢。
Bootstrap datetimepicker 内部使用 Moment.js 进行格式化,Moment 的格式代码与 .网的。例如,.NET 使用dd
表示月份中的前导数字 (01...31),但 Moment 使用DD
表示相同的内容。因此,您在上面发布的代码将无法按预期工作。
你将需要编写一个转换方法,该方法采用 .NET 日期/时间格式字符串并吐出与 Moment 兼容的版本,然后可以在设置 datetimepicker.format
属性时使用该版本。
如果你看一下 Momentjs 文档,你会发现它们提供了语言环境感知格式令牌L
(日期)和LT
(时间)。
这两个标记都是选取器format
设置的可接受字符串。
只要将moment-with-locales.js
或moment.js
包含在正确的区域设置文件中,就可以使用任一令牌来执行所需的操作。
$('#displayMapLocationStartDate').datetimepicker(
{
format: 'L',
});