最近在用.net + Extjs搞开发,不可避免的碰到一些本地化、日期格式的问题。在万能的Google上找了一些,解决了.net返回日期格式化的问题。
.net(或者说服务器端)的日期格式是这样子滴: //Date(1279270720000+0800)//
ASP.NET AJAX 使用格式“@ticks@”,其中 ticks 表示从通用协调时间 (UTC) 1970 年 1 月 1 日起经过的毫秒数。
问题是在界面上要显示这种格式可就有点惨不忍睹了,所以在客户端必须进行反序列化(或者叫解码?)。下面提出解决办法,讲的很通俗,通俗的有点笨笨的感觉了,但是一看就能明白。
解决办法:
首先要有个反序列化的JS函数:
function renderToDate(value, p, record) {
var jsondate = record.data.YourDateField;//这个YourDateField就是Json返回的日期字段,按需修改
return eval("new " + jsondate.substr(1, jsondate.length - 2)).toLocaleDateString();
}
然后再你要显示日期的地方把这个Js函数放在Render后面,如下:
{ header: "日期", width: 100, sortable: true, renderer: renderToDate, dataIndex: 'YourDateField' } //YourDateField对应上面的
然后大功告成,当然了,如果你不想用这个格式,还能用这个语句来调整你所需要的格式:
return eval("new " + jsondate.substr(1, jsondate.length - 2)).format('Y-m-d') // 2010-07-10