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

Posted

技术标签:

【中文标题】设置发送到控制器的 Kendo DateTimePicker 日期格式【英文标题】:Set the format of a Kendo DateTimePicker date sent to the controller 【发布时间】:2014-10-06 19:06:41 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

如果您需要更改从申请中获得的日期,您可以按照以下方式进行操作

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() 将日期格式化为字符串

如果您需要转换从 Datepicker 获取的日期,请执行此操作

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

如果您需要将 Datepicker 日期转换为 Sever Date

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

【讨论】:

【参考方案2】:

这是我用过的:

 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");

【讨论】:

【参考方案3】:

我创建了一个自定义活页夹,用来代替“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);
    

);

【讨论】:

【参考方案4】:

你也可以试试这个

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"
    ;

You can also see this

【讨论】:

【参考方案5】:

如果您使用 kendo API 绑定网格,则可以使用 .Format("0:d")。 这是您可以找到标准和自定义格式含义的链接 - Date formatting

这是一个使用自定义格式的示例 columns.Bound(model => model.CreatedOn).Format("0:dd.MM.yyyy - HH:mm:ss");

结果为 24 小时格式:20.07.2016 - 11:01:23

【讨论】:

以上是关于设置发送到控制器的 Kendo DateTimePicker 日期格式的主要内容,如果未能解决你的问题,请参考以下文章

Kendo DataSource:如何在不发送两个 httprequest 的情况下在 fetch 之前设置过滤器

如何为 kendo ui 下拉菜单设置默认值?

仅获取修改或新的 Kendo UI Grid 行以发送到服务器

在Kendo网格中,如何避免将深拷贝数据发送到客户端?

Kendo UI DateTimePicker 没有正确绑定到控制器

将 Kendo Grid 数据发布到 MVC 中的控制器