如何使用 jQuery 模板格式化日期/时间?
Posted
技术标签:
【中文标题】如何使用 jQuery 模板格式化日期/时间?【英文标题】:How do I format Date/Time with jQuery Templates? 【发布时间】:2011-05-19 11:55:50 【问题描述】:我刚刚开始使用jQuery Templates 作为我的javascript 模板引擎。我的问题是,我如何格式化日期(从 ASP.NET Json ActionResult 返回)格式为:
/Date(1288709830000)/
我尝试了以下操作:
= $.format(new Date(parseInt(comment.DateCreated.substr(6))), 'd')
注意上面使用新的jquery全球化插件添加$.format
方法。另请注意,= comment.DateCreated
是表示$comment.DateCreated
的长手。
如果您能提供帮助,我将不胜感激。
【问题讨论】:
你期待什么?实际发生了什么? 我不建议使用 jQuery 或 JavaScript 进行模板化,如果你问我这只是一场大灾难 - 尝试在 MVC 视图/服务器级别进行模板化。 @Erx_VB.NExT.Coder - Javascript 和 JQuery 模板是非灾难性的,微软正在帮助将这种功能开发到 JQuery 的核心中。客户端模板非常适合带宽敏感的移动开发,当您使用 API 时,尤其是当您与外部设计师合作时。 @jfar:当它调用tmpl插件内部的buildTmplFn函数时,它会抛出错误“无效字符”。 @Erx:如果你能解释为什么你会有这种感觉,你的评论会更有建设性。 【参考方案1】:要在 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
【讨论】:
【参考方案2】:这是我用的
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)
【讨论】:
【参考方案3】:这确实有效。我使用的是 Microsoft CDN 上托管的测试版。如果您下载最新版本,一切都会按预期运行。
【讨论】:
这一行:= $.format(new Date(parseInt(comment.DateCreated.substr(6))), 'd')。希望对您有所帮助。【参考方案4】:我想出了一个非常老套的解决方案。如果在页面中添加如下函数:
function format(o, t)
return $.format(o, t);
然后您可以将表达式更改为:
= format(new Date(parseInt(comment.DateCreated.substr(6))), 'd')
而且效果很好。微软创建的两个插件会以这种方式发生冲突,这似乎很奇怪。
【讨论】:
以上是关于如何使用 jQuery 模板格式化日期/时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jQuery datetimepicker 中格式化日期?
如何在 PHP 中使用 jquery 验证 'dd/mm/yyyy HH:ii P' 格式的日期时间?