格式化字符串和日期时间

本文关键字:时间 日期 字符串 格式化 | 更新日期: 2023-09-27 18:04:45

我有一个WCF类,

    [DataContract]
    public class Membership
    {
        [DataMember]
        public int ID;
        public DateTime? StartDate{ get; set; }
        [DataMember(EmitDefaultValue = false, Name = "StartDate")]
        public string StartDateString
        {
            get
            {
                if (this.StartDate.HasValue)
                    return this.StartDate.Value.ToString("dd/MM/yyyy HH:mm:ss");
                else
                    return null;
            }
            set
            {
                this.StartDate = Utils.ToNullableDateTime(this.StartDateString);
            }
        }
        public DateTime? EndDate { get; set; }
        [DataMember(EmitDefaultValue = false, Name = "EndDate")]
        public string EndDateString
        {
            get
            {
                if (this.EndDate.HasValue)
                    return this.EndDate.Value.ToString("dd/MM/yyyy HH:mm:ss");
                else
                    return null;
            }
            set
            {
                this.EndDate = Utils.ToNullableDateTime(this.EndDateString);
            }
        }

        public Membership() 
        {
                    //do something
        }
    }
}

当我在c#中填充这个对象并将其发送到JavaScript时,它会发送正确的值,但是当我在WCF方法中调用post查询时,它会给我StartDate, StartDateString, EndDate和EndDateString,

var memberships = [];
memberships.push({
    ID: id,
    StartDateString: $("#" + id + "governmentsddatepicker").val(),
    EndDateString: $("#" + id + "governmenteddatepicker").val()
});

在调试器中,我从jQuery选择器中获得正确的值,它只是在WCF方法中,我得到null,

 $.ajax({
        url: url,
        type: "POST",
        data: '{ "Memberships": ' + JSON.stringify(memberships) + '}',
        contentType: "application/json; charset=utf-8"
    })
在WCF

    public void UpdateMemberships(Membership[] memberships)
    {
        //do some work 
       // GETTING all dates here null
    }

Rest ID和其他数据成员(我删除了这个问题)工作正常。

除了上面的错误-我想要

我想控制格式的方式,我返回我的日期时间到客户端,但我也想控制我从客户端接收日期时间的方式,并相应地填充我的日期字符串

编辑

这是JS在字符串函数后发布的内容,

JSON.stringify(会员)="[{" ID ":"53","StartDateString":"23/07/2015"、"EndDateString":"28/07/2015"}]"

格式化字符串和日期时间

这可能是一个愚蠢的答案,但是为什么在data:之后使用'' ?

使用:

 data: '{ "Memberships": ' + JSON.stringify(memberships) + '}',

但是我认为你必须使用

data: { "Memberships":  JSON.stringify(memberships)},