2014-05-01 23 views
0

在我的应用程序中,我有一个名为Messages的集合。定义如下:从Meteor数据库处理数据

var email = userEmail(); 
var time = new Date().getTime(); 
//value is the text of the message 
message = {user: Meteor.userId(), time: time, message: value}; 
Messages.insert(message); 

在我的模板,我有以下几点:

{{#each messages}} 
    <li class="panel panel-default"> 
      <p class="date">{{time}}</p> 
      <a href="http://{{message}}">{{message}}</a> 
    </li> 
{{/each}} 

当然,当我访问我的网站,它显示的时间为纪元时间戳数量,例如:1398954569368

我想处理我的{{time}},以便以人类可读的格式显示它。

如何或在哪里可以访问我的{{time}}变量,以便我可以对其执行JavaScript操作?

回答

1

此数字是Date()。getTime()返回的值。退房MDN Date对象上:

Date.prototype.getTime() 返回自1970年1月1日,在指定 日期的毫秒数的数值,UTC 00:00:00 (以前时代为负面)。

假设您的信息可以通过该路由访问,可以使用模板助手中的Moment.js访问/修改日期/时间对象。因此,作为一个例子:

Template.yourTemplateName.time = function() { 
    return moment(yourDateObject).fromNow(); 
}; 

Meteor Template Helpers

+0

我知道*如何*到一个划时代的时间戳转换为日期。请注意最后一行:'我如何或在哪里访问我的{{time}}变量,以便我可以对其执行JavaScript操作?'。然后尤其是,*哪里*我可以访问它 – Azeirah

+0

道歉失踪。您可以在模板帮助程序中访问/修改它,假设您的信息可以通过该路线访问。例如:Template.yourTemplateName.time = function(){return moment(yourDateObject).fromNow()}; http://docs.meteor.com/#template_helpers – davegonzalez

+0

啊,帮手。它现在有效。 如果你在你的文章中包括这个,我会选择你接受的答案。 – Azeirah