Javascript 剑道调度程序中的英文时间格式

Javascript 剑道调度程序中的英文时间格式,javascript,kendo-ui,asp.net-mvc-5,culture,kendo-scheduler,Javascript,Kendo Ui,Asp.net Mvc 5,Culture,Kendo Scheduler,我正在ASP.NET MVC5网站中使用剑道调度程序 根据浏览器和pc的区域设置,我从剑道更改控件的语言(使用剑道区域js文件) 当我想将调度程序的语言更改为“英语”('en')时,时间格式非常奇怪 在下图中,您可以看到它。 代替上午和下午: 在带有时间的左栏中,它显示“A2”或“P2” 在add表单中,它使用“AM”和“PM”。应该是 当我保存事件时,事件中的时间显示为“A7”或“P7” 注意:我是荷兰人,所以我不知道这些东西是否有意义 添加表单填写我的ASP.NET网站中的“事件”模型

我正在ASP.NET MVC5网站中使用剑道调度程序

根据浏览器和pc的区域设置,我从剑道更改控件的语言(使用剑道区域js文件)

当我想将调度程序的语言更改为“英语”('en')时,时间格式非常奇怪

在下图中,您可以看到它。 代替上午和下午:

  • 在带有时间的左栏中,它显示“A2”或“P2”
  • 在add表单中,它使用“AM”和“PM”。应该是
  • 当我保存事件时,事件中的时间显示为“A7”或“P7”
注意:我是荷兰人,所以我不知道这些东西是否有意义

添加表单填写我的ASP.NET网站中的“事件”模型。 当我检查模型中的值时,它显示“AM”和“PM”。应该是

有人知道为什么会显示“A2”、“P2”、“A7”、“P7”吗

提前谢谢

来自评论:

它将回退到en US并使用
MM/dd/yyyy hh:MM tt
格式字符串。这将呈现为类似于
07/15/2015 02:05 pm

然而,在客户端,这似乎被传递给Kendo的日期格式化函数,对于该函数,除一个字符外,所有字符都被视为文本。但是
m
是没有前导零的分钟,因此被替换


在服务器端或客户端执行所有格式化操作。两者兼而有之会产生这样的问题。不幸的是,由于JavaScript有限的日期处理和剑道的限制,很难做到这一点。

我将日期格式化如下:

kendo.toString(start, start.toLocaleTimeString('en'))
但它必须是:

kendo.toString(start.toLocaleTimeString('en'))

Kendo的格式与.NET的格式几乎相同,但并不完全相同(并且包括几个重要的遗漏:当MVC助手在服务器和客户端上使用相同的格式时,这是一个真正的问题)。另请注意:这看起来像美国格式。在英国,我们使用的是更为合理的格式(15/07/2015 13:58)。每种情况下指定的格式字符串是什么?@Richard:startTime.toLocaleTimeString('en')我使用了“toLocaleTimeString”,因为我希望时间和日期格式随着语言的变化而变化,我不明白为什么使用“m”被2替换,在事件中被7替换?
m
是剑道日期格式中的元字符(“从0到59的分钟”):没有代码我不能确定,但你的症状与通过剑道.toString传递的格式化日期一致。这是我显示时间的代码:Kendo.toString(date,date.toLocaleTimeString('en')@ceuben这是错误的:您正在格式化它两次,使用
toLocaleTimeString
的输出作为
kendo.toString
的格式。但是
toLocaleTimeString
返回格式化的日期,而不是要使用的格式。因此,“07/15/2015 02:05 pm”变为“07/15/2015 02:05 p5”因为
kendo.toString
看到“m”并将其替换为其第一个参数中的分钟值。
kendo.toString(start.toLocaleTimeString('en'))