2010-12-03 27 views
11

acabo de empezar a usar jQuery Templates como mi motor de plantillas de JavaScript. Mi pregunta es, ¿Cómo puedo dar formato a una fecha (de regresar de una ASP.NET JSON ActionResult) en la forma:¿Cómo puedo formatear la fecha/hora con jQuery Templates?

/Date(1288709830000)/ 

He intentado hacer lo siguiente:

{{= $.format(new Date(parseInt(comment.DateCreated.substr(6))), 'd')}} 

Nota los usos anteriores, la nueva jquery globalization plugin para agregar el método $.format. También tenga en cuenta que {{= comment.DateCreated }} es largo para decir ${comment.DateCreated}.

Realmente apreciaría si pudiera ayudar.

+0

¿Qué esperas? ¿Qué está sucediendo realmente? – jfar

+0

No recomendaría el uso de jQuery o JavaScript para la creación de plantillas, es solo un gran desastre si me lo pregunta; intente hacer sus plantillas en el nivel de vista/servidor de MVC. –

+7

@ Erx_VB.NExT.Coder: las plantillas Javascript y JQuery son un desastre NON que Microsoft está ayudando a desarrollar este tipo de funcionalidad en el CORE de JQuery. La creación de plantillas del lado del cliente es increíble para el desarrollo móvil sensible al ancho de banda, cuando se trabaja con una API, y especialmente cuando se trabaja con un diseñador externo. – jfar

Respuesta

2

Esto realmente funciona. Estaba usando la versión beta alojada en el CDN de Microsoft. Si descarga la última versión, todo funciona como se espera.

+0

¿Qué "realmente funciona"? – Homer

+1

Esta línea: {{= $ .format (nueva Fecha (parseInt (comment.DateCreated.substr (6))), 'd')}}. Espero eso ayude. – nfplee

1

He encontrado una solución muy hacky. Si se agrega la siguiente función a la página:

function format(o, t) { 
    return $.format(o, t); 
} 

A continuación, puede cambiar la expresión de:

{{= format(new Date(parseInt(comment.DateCreated.substr(6))), 'd') }} 

y trabaja muy bien. Parece extraño que dos complementos creados por Microsoft entren en conflicto de esta manera.

0

Para dar formato a una fecha y hora dentro de una plantilla de jQuery se podría escribir una función como:

function formatDate(datetime) { 
    var dateObj = new Date(datetime); 
    var dateStr = (dateObj.getMonth()+1) + "/" + dateObj.getDate() + "/" + dateObj.getFullYear(); 
    return dateStr; // will return mm/dd/yyyy 
} 

A continuación, puede llamar a esta función desde dentro de la plantilla de jQuery, así: ${formatDate(comment.DateCreated)}

Para más detalles ver: http://api.jquery.com/template-tag-equal

3

Esto es lo que solía

var formatDate = function (datetime) { 
    var dateObj = new Date(parseInt(datetime.replace("/Date(", "").replace(")/", ""), 10)); 
    return dateObj.format("dd-MMM-yyyy"); //01-Jun-2001 
} 

Y esto en mi plantilla jQuery

$ {formatDate (InceptionDate)}