2009-11-17 9 views
3

J'ai la date JSON suivante retournée à partir d'une page MVC, par ex.Format JTemplates Date utilisant asp.net mvc

"DateProcessed":"\/Date(1258125238090)\/" 

et j'utilise JTemplates pour traiter les données comme ci-dessous.

$('#result').setTemplate($("#TemplateResultsTable").html()); 
$("#result").processTemplate(data); 

Voici mes résultats modèle

<script type="text/html" id="TemplateResultsTable">  
<h3>{$T[0].StatusName} - Found: {$T.length} </h3> 
<table> 
    <tr> 
     <th>Name</th> 
     <th>Description</th> 
     <th>Date Processed</th> 
    </tr> 
    {#foreach $T as match} 
     <tr> 
      <td>{$T.match.Title}</td> 
      <td>{$T.match.Description}</td> 
      <td>{$T.match.DateProcessed}</td> 
     </tr> 
    {#/for} 
</table> 
</script> 

Tout fonctionne très bien en dehors du fait que ma date est émise sur la page/Date (1258125238090)/

Comment formater la date dans mon modèle de résultats?

Répondre

5

Réponse ci-dessous au cas où quelqu'un d'autre recherche ce post ...

Ajouter ce qui suit JScript ....

function formatJSONDate(jsonDate) { 
    var date = eval(jsonDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")); 
    return dateFormat(date, "ddd ddS mmm yyyy"); 
} 

télécharger un javascript date format library puis dans votre modèle de jTemplate ajouter

<td>{formatJSONDate($T.match.DateProcessed)}</td> 

Et c'est tout!

+1

Merci d'avoir pris le temps de poster la réponse. Juste m'a sauvé du travail! – CResults

+0

Pas de soucis, contente que ça ait aidé – Rippo

+0

@Rippo est-ce qu'il n'y a pas d'autre moyen que d'utiliser 'eval()'? – Deeptechtons

1

J'ai rencontré ce même problème et j'ai fini par (après beaucoup d'aggravation) renvoyant juste la date comme une chaîne dans mon JSON.

+0

On dirait que je l'ai compris, assez facile quand vous obtenez le bon format ..... affichera bientôt une réponse – Rippo