模板中的DateTime格式

时间:2012-08-17 16:10:12

标签: jquery asp.net-mvc json mustache handlebars.js

我在我的应用程序中使用小胡子模板。 JSON中的日期时间值如下所示: 如何以适当的格式转换它们?

Created 
"/Date(1335232596000)/"

Submitted
"/Date(1335214659000)/"

3 个答案:

答案 0 :(得分:1)

您需要将数字与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)/");

答案 1 :(得分:0)

找到以下解决方案 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>

答案 2 :(得分:0)

我知道这个问题已经过时了,但2014年车把的解决方案是使用帮手。例如:

Handlebars.registerHelper("formatDate", function (datetime) {
    var d = parseInt(datetime.match(/\d+/));
    return new Date(d);
});

然后在你的把手模板中使用它:

{{formatDate Created}}

{{formatDate Submitted}}

希望这有帮助