设置发送到控制器的 Kendo DateTimePicker 日期的格式

问题描述 投票:0回答:6

我在我的应用程序中使用 Kendo DateTimePicker。

我在应用程序中从中获得的价值是

Wed Aug 13 2014 00:00:00 GMT+0200 (Romance Daylight Time)

我无法将其解析为日期时间。我收到“字符串未被识别为有效的日期时间”。错误。

如何设置从 DateTimePicker 获取的日期的格式? Kendo DateTimePicker 中有一个选项吗?t

kendo-ui datetimepicker
6个回答
17
投票

如果您需要更改从申请中获得的日期,您可以执行以下操作

var dateobj=kendo.parseDate("Wed Aug 13 2014 00:00:00 GMT+0200 (Romance Daylight Time)", "yyyy-MM-dd h:mm:ss tt");
var datestring = kendo.toString(dateobj, "MM-dd-yyyy h:mm:ss tt");

kendo.parseDate()
会将日期解析为日期对象,
kendo.toString()
会将日期格式化为字符串

如果您需要转换从日期选择器获得的日期,请执行此操作

var datepicker = $("#datepicker").data("kendoDatePicker");
var value = datepicker.value();
kendo.toString(value,"dd/MM/YYYY")

如果您需要将日期选择器日期转换为服务器日期

var datepicker = $("#datepicker").data("kendoDatePicker");
    var value = datepicker.value();
    value.toUTCString();

1
投票

这是我用过的:

 var dateobj = kendo.parseDate("Wed Aug 13 2014 00:00:00 GMT+0200 (Romance Daylight Time)");
 var datestring = kendo.toString(dateobj, "MM-dd-yyyy h:mm:ss tt");

1
投票

我创建了一个自定义活页夹,用它来代替“VALUE”数据绑定属性

kendo.data.binders.widget.shortdate = kendo.data.Binder.extend({
init: function (widget, bindings, options) {
    kendo.data.Binder.fn.init.call(this, widget.element[0], bindings, options);
    var that = this;
    $(widget.element).on("change", function () {
        that.change();
    });
},
refresh: function () {
    var path = this.bindings.shortdate.path,
        source = this.bindings.shortdate.source,
        value = source.get(path);
    this.bindings["shortdate"].set(value);
},
change: function () {
    var formatedValue = this.element.value,
    value = kendo.toString(new Date(formatedValue), "d");
    if (value) {
        this.bindings["shortdate"].set(value);
    }
}

});


0
投票

你也可以试试这个

entity.ExpiredDate = ParseDate(model.ExpiredDate);



private static DateTime ParseDate(string input)
        {
            return DateTime.ParseExact(input, formats, CultureInfo.InvariantCulture, DateTimeStyles.None);
        }

  private static string[] formats = new string[]
    {
        "MM/dd/yyyy HH:mm:ss tt",
        "MM/dd/yyyy HH:mm:ss",
        "M/dd/yyyy H:mm:ss tt",
        "M/dd/yyyy H:mm:ss"   ,
        "MM/dd/yyyy hh:mm tt"
    };

你还可以看到这个


0
投票

如果您使用kendo API绑定网格,则可以使用.Format(“0:d”)。 您可以在以下链接中找到标准和自定义格式的含义 - 日期格式

这是一个使用自定义格式的示例

columns.Bound(model => model.CreatedOn).Format("{0:dd.MM.yyyy - HH:mm:ss}");

结果是 24 小时格式:

20.07.2016 - 11:01:23


0
投票

这是一个不同的答案,使用 Se SendKeys() 方法。

观察手动输入日期的工作方式,得出此解决方案:

Using Web Driver and Send Keys method to enter a date

研究如何访问日期选择器图标。 这很棘手,但当弄清楚后,会将其发布在这里和另一个链接中:

另一篇关于使用 Se 进行日期格式化的 SO 帖子

只需修改其他日期格式即可。请注意,小写的 m、mm 等是 Kendo 日期选择器的分钟。月份必须大写 MM、MMM。

输入 2 位数日期后,选择器会跳至月份部分。 可以发送月份的字符,或者可以使用 1-12 月的字符。 MMM 自动将 1-12 转换为 3 个字符的月份值。

只需设置 Se 测试即可找出其他问题。

“我会回来...”使用日期选择器图标解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.