用JQuery Ajax返回一个Entity的Json数据时,如果Entity的属性中有日期格式,那返回来的是一串字符串,如下图所示:
在网上找了很久也沒有找到一个好的解決方案,最后自己写一個javascrip Function 特此记录,以备后用:
UPDATE:可以用Json.net中IsoDateTimeConverter:
Product pro =
new
Product();
pro.PNo =
"001"
;
pro.PName =
"Apple"
;
pro.PDate =
new
DateTime(2011, 12, 28);
pro.Price = 3.99M;
IsoDateTimeConverter timeConverter =
new
IsoDateTimeConverter();
//这里使用自定义日期格式,默认是ISO8601格式
timeConverter.DateTimeFormat =
"yyyy-MM-dd"
;
//设置时间格式
string
json = JsonConvert.SerializeObject(pro,Formatting.Indented,timeConverter);
//转换序列化的对象
//string json = JsonConvert.SerializeObject(pro, new IsoDateTimeConverter());//默认是ISO8601格式
context.Response.Write(json);}
|
输出结果:"{\r\n \"PNo\": \"001\",\r\n \"PName\": \"Apple\",\r\n \"PDate\": \"2011-12-28\",\r\n \"Price\": 3.99\r\n}"
调用前的图像问题:
function ChangeDateFormat(cellval)
{
var date =
new
Date(parseInt(cellval.replace(
"/Date("
,
""
).replace(
")/"
,
""
), 10));
var month = date.getMonth() + 1 < 10 ?
"0"
+ (date.getMonth() + 1) : date.getMonth() + 1;
var currentDate = date.getDate() < 10 ?
"0"
+ date.getDate() : date.getDate();
return
date.getFullYear() +
"-"
+ month +
"-"
+ currentDate;
}
|
function
DataBindToMemberDetailDialog(memberObj)
{
$(
"#span_memberName"
).text(memberObj.UserName);
$(
"#span_sex"
).text(memberObj.SexText);
$(
"#span_firstNameAndLastName"
).text(memberObj.LastName +
" "
+ memberObj.FirstName);
$(
"#span_birthday"
).text(ChangeDateFormat(memberObj.Birthday));
$(
"#span_email"
).text(memberObj.Email);
$(
"#span_memberRate"
).text(
"此處還要修改"
);
$(
"#span_loginCount"
).text(memberObj.LoginCount);
$(
"#span_downloadCount"
).text(memberObj.DownloadCouponCount);
$(
"#span_scoreCount"
).text(memberObj.ScoreCount);
$(
"#span_createDate"
).text(memberObj.CreateDate);
}
|
执行后的结果: