我刚开始使用jQuery Templates作为我的javascript模板引擎。我的问题是,我如何格式化日期(从ASP.NET Json ActionResult返回)格式:
/Date(1288709830000)/
我尝试了以下操作:
{{= $.format(new Date(parseInt(comment.DateCreated.substr(6))), 'd')}}
请注意,上面使用新的jquery全球化插件来添加$.format
方法。另请注意,{{= comment.DateCreated }}
可以说${comment.DateCreated}
。
如果你能提供帮助,我真的很感激。
答案 0 :(得分:3)
这是我用的
var formatDate = function (datetime) {
var dateObj = new Date(parseInt(datetime.replace("/Date(", "").replace(")/", ""), 10));
return dateObj.format("dd-MMM-yyyy"); //01-Jun-2001
}
这是我的JQuery模板
$ {formatDate(InceptionDate)}
答案 1 :(得分:2)
这确实有效。我使用的是Microsoft CDN上托管的测试版。如果您下载最新版本,一切都按预期工作。
答案 2 :(得分:1)
我想出了一个非常讨厌的解决方案。如果您将以下功能添加到页面:
function format(o, t) {
return $.format(o, t);
}
然后您可以将表达式更改为:
{{= format(new Date(parseInt(comment.DateCreated.substr(6))), 'd') }}
它工作正常。这似乎很奇怪,微软创建的两个插件都会以这种方式发生冲突。
答案 3 :(得分:0)
要在jQuery模板中格式化日期时间,您可以编写如下函数:
function formatDate(datetime) {
var dateObj = new Date(datetime);
var dateStr = (dateObj.getMonth()+1) + "/" + dateObj.getDate() + "/" + dateObj.getFullYear();
return dateStr; // will return mm/dd/yyyy
}
然后,您可以在jQuery模板中调用此函数,如下所示:${formatDate(comment.DateCreated)}
有关详细信息,请参阅:http://api.jquery.com/template-tag-equal