情景描述:使用C#在后台中传递时间到ajax中,因为是一个list<model>就直接用了Json 作为载体,但是在js中获得到的时间是var time='/Date(***************)/';
初次判断为时间戳,直接转换 new Date(time); 失败,仔细看才发现是因为json时间转化的问题
一:底层方法
[HttpPost] public JsonResult AjaxReviewForBranchDetail(int PageIndex, int BranchID) { PageIndex++; var reviewlist = this.WebSiteService.GetReviewList(new ReviewRequest() { BranchID = BranchID, PageIndex = PageIndex }, true); return Json(new { reviews = reviewlist.Select(r => new { r.Content, r.CreateDate, r.CompositeScore, r.UserName }) }); }
二:js 接收
//点评数据 function getmorereview() { $.ajax({ url: "AjaxReviewForBranchDetail", type: "post", data: { PageIndex: $("#reviewpageindex").val(), BranchID: $("#HidBranchID").val() }, success: function (date) { var html = ""; if (date != null) { if (date.reviews.length > 0) { for (var i = 0; i < date.reviews.length; i++) { html += "<dl class="commentdetails">"; html += "<div class="left imgb">"; html += "<i class="icon cusimg"></i>"; html += "</div>"; html + "<div class="left commentcontent">"; html += "<div>"; html += "<span class="username">" + date.reviews[i].UserName + "</span>"; html += "<div class="icon star" style="display: inline-block;">"; html += "<i class="icon progress5"></i>"; html += "</div>"; html += "<span class="scores">" + date.reviews[i].CompositeScore + "分</span> <span class="time">" + getLocalTime(date.reviews[i].CreateDate) + "</span>"; html += "</div>"; html += "<p class="cont">"; html += date.reviews[i].Content; html += "</p>"; html += "</div>"; html += "</dl>"; } $("#reviewpageindex").val(parseInt($("#reviewpageindex").val()) + 1); } } else { html += "<span>亲,这回真没了!</span>"; } $("#reviewdiv").append(html); } }) }
三:json转datetime
//时间json转datetime function getLocalTime(dateText) { dateText = dateText.replace("/Date(", "").replace(")/", "").substring(0, 10); /* 需要注意的是: 不要把字符串中的Date(这样的字符也传进去,要先处理一下,这样很方便就能处理的 可以使用replace方法 如:replace("/Date(","").replace(")/",""); */ //返回 2014年5月26日 下午12:00 //return new Date(parseInt(dateText) * 1000).toLocaleString().replace(/:d{1,2}$/, ' '); //返回 2014年5月26日 下午12:0 //return new Date(parseInt(dateText) * 1000).toLocaleString().substr(0, 17); //返回 2014-5-26 12:00:29 return new Date(parseInt(dateText) * 1000).toLocaleString().substr(0, 12).replace(/年|月/g, "-").replace(/日/g, " ").replace(/上|午/g, " ").replace(/下|午/g, " "); }
ps:我要的是年-月-日所以就substr(0,12),这个根据个人需求判定