我在我的应用程序中使用胡子模板。JSON 中的日期时间值如下所示: 如何将它们转换为正确的格式?
Created
"/Date(1335232596000)/"
Submitted
"/Date(1335214659000)/"
我在我的应用程序中使用胡子模板。JSON 中的日期时间值如下所示: 如何将它们转换为正确的格式?
Created
"/Date(1335232596000)/"
Submitted
"/Date(1335214659000)/"
您需要隔离数字subString()
并将其用作新日期的毫秒输入。
var a = "/Date(1335214659000)/";
var b = parseInt(a.substring(a.indexOf('(')+1,a.indexOf(')')));
var x = new Date(b);
alert(x);
最好让它成为一个函数。
function GetDateFromJSONData (a) {
var b = parseInt(a.substring(a.indexOf('(')+1,a.indexOf(')')));
return new Date(b);
}
var x = GetDateFromJSONData("/Date(1335214659000)/");
在http://weblogs.asp.net/hajan/archive/2010/12/13/jquery-templates-in-asp-net-introduction.aspx找到以下解决方案
. 希望它可以帮助别人
<html xmlns="www.w3.org/.../xhtml">
<head runat="server">
<title>...</title>
<script src="ajax.aspnetcdn.com/.../jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="ajax.aspnetcdn.com/.../jquery.tmpl.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var test =
{
Id: '43000796568231937',
created_at: '1294003506853-0700'
};
$("#myTemplate").tmpl(test).appendTo("#tblMyTable");
});
function FormatDate(jDate) {
alert("jDate:" + jDate);
var date = eval(jDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
alert(date);
var dDate = new Date(date);
alert(dDate);
var year = dDate.getFullYear();
alert(year);
return dDate;
}
</script>
<script id="myTemplate" type="text/html">
<tr><td>${Id} - ${FormatDate(created_at)}</td></tr>
</script>
</head>
<body>
<form id="form1" runat="server">
<table id="tblMyTable"></table>
</form>
</body>
</html>
我知道这个问题很老,但 2014 年车把的解决方案是使用助手。例如:
Handlebars.registerHelper("formatDate", function (datetime) {
var d = parseInt(datetime.match(/\d+/));
return new Date(d);
});
然后在您的车把模板中使用它:
{{formatDate Created}}
或者
{{formatDate Submitted}}
希望这可以帮助