1

嗨,我们为我们的 Web 应用程序使用了一个简单的 kendo 日期选择器。

$("#DateInput").kendoDatePicker({
        format: "dd/MM/yyyy",        
        culture: "en-GB",
        max: new Date()
    });

现在,当我们尝试在 Javascript 中获取 datepicker 值时,我的浏览器给了我日期格式dd/MM/yyyy但我同事的浏览器给了他MM/dd/yyyy。我们尝试使用与您在剑道中看到的相同的文化,以及在我们的 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”中的日期格式。任何可行的解决方案都将受到高度赞赏。谢谢。

4

2 回答 2

2

在渲染任何剑道小部件之前,尝试在页面顶部添加此代码:

kendo.culture("en-GB");

它应该强制剑道小部件使用en-GB文化在所有位置工作。

如果您使用的是 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
于 2014-01-21T09:09:12.793 回答
0

如果您打算将日期转换为您想要的格式“dd/MM/yyyy”,并且如果您的剑道网格没有在不同的地方为您提供正确的结果,请创建您自己的格式。像这样的东西。

在 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 上为您提供了更好的解决方案。你正在用这样的东西读取日期选择器值,对吧?

$("#YourDatePickerName").data("kendoDatePicker").value()

在这里你可以告诉你的浏览器你想使用哪个本地,如下所示

$("#YourDatePickerName").data("kendoDatePicker").value().toLocaleString("en-GB");

这将为每种文化产生完全相同的结果。

进一步更新

如果你想用 Kendo 的方式来做,那么你可以使用 kendo.toString()。你可以在这里查看

于 2014-01-21T12:09:44.657 回答