在javascript模板中格式化json日期
我的控制器使用JSON向视图发送日期数据。在视图上,我将这些数据发送到jQuery模板以显示。我的问题是日期,因为我得到这个值在javascript模板中格式化json日期,javascript,jquery,json,jquery-mobile,Javascript,Jquery,Json,Jquery Mobile,我的控制器使用JSON向视图发送日期数据。在视图上,我将这些数据发送到jQuery模板以显示。我的问题是日期,因为我得到这个值 "/Date(1245398693390)/" 所以我尝试过使用FireBug,但使用FireBug我可以看到在第行抛出了一个错误 var value = new Date(parseInt(jsonDate.substr(6))); 带着错误 jsonDate.substr不是函数 如果这很重要的话,我将尝试使用jQuery mobile实现它 更新 <sc
"/Date(1245398693390)/"
所以我尝试过使用FireBug,但使用FireBug我可以看到在第行抛出了一个错误
var value = new Date(parseInt(jsonDate.substr(6)));
带着错误
jsonDate.substr不是函数
如果这很重要的话,我将尝试使用jQuery mobile实现它
更新
<script id="myDataTemplate" type="text/html">
<li>@Html.ActionLink("${GetDateString(Date)}", "Fetch", "Data")</li>
</script>
工作试验
var aa = "/Date(1245398693390/".match(/\d+/);
var bb = parseInt(aa);
var date = new Date(bb);
alert(date);
您得到的实际上是javascript代码,而不是json本身。这意味着,如果执行该代码,它将生成一个新的
Date
对象,该对象从unix纪元日期起的#毫秒开始。换句话说,您需要将该值视为JSONP。@Kristian谢谢您的时间。问题已更新。你能用具体的例子来添加解决方案吗?所以,当你在控制台上运行jsonDate
var时,你会得到“/Date(1245398693390)/”
?我刚刚发布了最初使用的js函数。它在var值=。。。线路。当然,我使用了@Html.ActionLink(${GetDate(Date)}”…是的,这是因为jsonDate的值不是正确的字符串。因此函数substr
不可用。因此,为了继续调试此函数,您需要在该函数的中断行之前抛出一个console.log
,以准确识别jsonDate的值,并确保它是ac实际上是一个字符串。:)(我想该是我签约的时候了,我从来没有用过它。干杯
function GetDate(jsonDate) {
var value = new Date(parseInt(jsonDate.substr(6))); //breaks
return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear();
}
var aa = "/Date(1245398693390/".match(/\d+/);
var bb = parseInt(aa);
var date = new Date(bb);
alert(date);