您好我们的Web应用程序使用简单的kendo datepicker。
$("#DateInput").kendoDatePicker({
format: "dd/MM/yyyy",
culture: "en-GB",
max: new Date()
});
现在,当我们尝试在Javascript中获取datepicker值时,我的浏览器为我提供了日期格式 dd / MM / yyyy ,但我的同事的浏览器给了他 MM / dd / yyyy 。我们尝试使用相同的文化,你可以在kendo和我们的web.config中看到,我们将全球化设置如下所示。
<system.web>
<globalization uiCulture="en-GB" culture="en-GB" />
</system.web>
我的电脑的日期格式和设置如下;
Region & Language format: English(United Kinddom)
Keyboard Layout: English(United Kingdom)
Long and Short Date format: dd MMMM yyyy
Timezone: GMT+6
我同事的日期格式和设置是;
Region & Language format: English(Australia)
Keyboard Layout: English(Australia)
Long and Short Date format: dd MMMM yyyy
Timezone: GMT+8
最后一点信息,我们正在使用Chrome进行测试。这可能是UTC的问题。 我想在两个场合使用“dd / MM / yyyy”的日期格式。任何可行的解决方案将受到高度赞赏。感谢。
答案 0 :(得分:2)
尝试在渲染任何kendo小部件之前在页面顶部添加此代码:
kendo.culture("en-GB");
它应该强制使用en-GB
文化在所有位置使用kendo小部件。
如果您正在使用ASP.MVC,我建议将其添加到“_Layout.cshtml”中,如:
<head>
...
<script src="@Url.Content("~/Scripts/jquery/jquery-1.8.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Kendo/js/kendo.all.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Kendo/js/kendo.aspnetmvc.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Kendo/js/cultures/kendo.culture.pl-PL.min.js")"></script>
<script src="@Url.Content("~/Kendo/js/cultures/kendo.culture.en-GB.min.js")"></script>
<script src="@Url.Content("~/Kendo/js/cultures/kendo.culture.de-DE.min.js")"></script>
<script type="text/javascript">
kendo.culture("en-GB");
</script>
//widgets create scripts for your views if you write it here
</head>
有关全球化的详细信息,请访问以下链接:
http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/globalization
答案 1 :(得分:0)
如果您打算将日期转换为所需的格式“dd / MM / yyyy”,并且如果您的kendo网格未在不同的地方为您提供正确的结果,请创建您自己的。有点像这样。
在Json:
var FixedDateFormat = "PlodDate: '" + (Date.getUTCDate() + 1) + "/" + (Date.getUTCMonth() + 1) + "/" + Date.getUTCFullYear() + " 00:00:00";
这里我在日期和月份上添加了1因为getUTCDate / Month从0开始。正如你在评论中所说,你接受日期为字符串,然后将其转换回DateTime所以我添加了时间“00: 00:00" 。
在MVC中:您可能需要执行以下操作来进行转换;
DateTime X = Convert.ToDateTime(PlodDate);
<强>更新强>
我在JS上有一个更好的解决方案。你正在用这样的东西读取datepicker值,对吧?
$("#YourDatePickerName").data("kendoDatePicker").value()
在这里,您可以告诉您的浏览器您想要使用的本地内容,如下所示
$("#YourDatePickerName").data("kendoDatePicker").value().toLocaleString("en-GB");
这将为每种文化产生完全相同的结果。
进一步更新
如果你想做Kendo的方式,那么你可以使用kendo.toString()。您可以查看here。