如何在模板内格式化时间戳?我遵循了一个关于建立聊天的教程,它可以工作。现在我扩展了聊天功能,例如删除消息并将时间放在消息前面。{{timestamp}}
但是当我在模板中写入时,会给出一个 UNIX 时间戳。我如何格式化它以显示像“6:12”这样的时间。时间戳存储在 Messages 集合中。
是在内部操作时间戳的正确位置
Template.Messages.created = function ( ) { ... }
功能?
提前致谢。
我使用这个库。它为您提供了您将需要的所有日期格式。使用流星只需将其放入,您可以在任何帮助程序中使用它来返回格式化的日期。
如果您想避免使用库并使用 Javascript Date 对象进行操作,我建议(假设日期采用 ISO 格式 2010-06-15T00:00:00,您可以从 Date.toISOString() 获取):
实现 format 方法(感谢JavaScript 等价于 printf/string.format),把它放在 ie lib/utils.js 中:
String.prototype.format = function(args, index) {
return this.replace(/{(\w+)}/g, function(match, number) {
return typeof args[index[number]] != 'undefined'
? args[index[number]]
: match
;
});
};
创建助手(放入client/client.js)
Handlebars.registerHelper('formatDate',function(input, pattern){
var iso = /^(\d{4})(?:-?W(\d+)(?:-?(\d+)D?)?|(?:-(\d+))?-(\d+))(?:[T ](\d+):(\d+)(?::(\d+)(?:\.(\d+))?)?)?(?:Z(-?\d*))?$/;
if(this[input]) {
var parts = this[input].match(iso);
return pattern.format(parts, {yyyy:1,MM:4,dd:5,hh:6,mm:7,ss:8,SSS:9});
}
return this[input];
});
使用助手:
{{#each logs}}
<tr>
<td>{{formatDate 'ts' '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}'}}</td>
看看这个包swag,它提供了许多有用的车把助手。
查看它的日期/时间助手:https ://github.com/elving/swag#dates
您可以像这样轻松地格式化日期/时间:
var date = new Date()
{{formatDate date "%m/%d/%Y"}}
{{formatDate date "%I:%M%p"}}
{{formatDate date "%F"}}
{{formatDate date "%Y%m%dT%H%M%S%z"}}
07/26/2015
11:38PM
2015-08-28
20150828T233805-0004