Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将moment.js与Meteor一起使用以写入过去的天/小时/月_Meteor_Momentjs - Fatal编程技术网

将moment.js与Meteor一起使用以写入过去的天/小时/月

将moment.js与Meteor一起使用以写入过去的天/小时/月,meteor,momentjs,Meteor,Momentjs,我在一个流星项目中使用。。。 (套餐:) 我想写一些像 “用户:jsmith四年前加入” 我一定错过了从mongoDB日期到现在的转换 json对象mongo { "_id" : "vWM5Sg67fqxQAzrnv", "createdAt" : ISODate("2015-03-14T03:39:03.384Z"), "emails" : [ {... etc. 当我把它输入控制台时 Meteor.user().createdAt; 返回 Mon Mar 16 2015 14:11:

我在一个流星项目中使用。。。 (套餐:)

我想写一些像

  • “用户:jsmith四年前加入”
我一定错过了从mongoDB日期到现在的转换

json对象mongo

{
"_id" : "vWM5Sg67fqxQAzrnv",
"createdAt" : ISODate("2015-03-14T03:39:03.384Z"),
"emails" : [
{... etc.
当我把它输入控制台时

Meteor.user().createdAt;
返回

Mon Mar 16 2015 14:11:54 GMT-0400 (EDT)
在我的test.js文件中 这很有效

var d= new Date('2011-04-11')
var dd= moment(d).format('MM/DD/YYYY');
console.log (dd);  // returns 04/10/2011
var dd  = moment([1954, 5, 8]).fromNow(true); // 4 years
console.log (dd);
这很有效

var d= new Date('2011-04-11')
var dd= moment(d).format('MM/DD/YYYY');
console.log (dd);  // returns 04/10/2011
var dd  = moment([1954, 5, 8]).fromNow(true); // 4 years
console.log (dd);
返回61年

this **DOESN'T** work

d = Meteor.user().createdAt;
var dd= moment([d]).fromNow(true);
console.log (dd);
返回TypeError:undefined不是对象(正在计算) Meteor.user().createdAt')

任何帮助都将不胜感激,我们已经尝试了一段时间。

注意:在我的模板中

{{currentUser.createdAt}}
是否有作品(即已出版)


Rob

这可能是一种竞赛条件,用户在代码执行时没有登录。解决这个问题的一个好方法就是创建一个助手,当用户登录时它将重新运行。但是,在这种情况下,我认为为时刻时间戳添加通用帮助器可能更合适:

Template.registerHelper('fromNow',函数(日期){
若有(日期)
返回时间(日期)。从现在开始(真);
});
然后在模板中可以执行以下操作:

{{fromNow currentUser.createdAt}}
因为
currentUser
是被动的,所以这样做应该是正确的。还要注意,
moment([d])
是不正确的,因为在本例中,
d
是一个
Date
对象(不像上一个示例那样是数组文字)。

它可以工作!我添加了
加入:{{fromNow currentUser.createdAt}}}
更新:{{{fromNow currentUser.updatedAt}}
-我必须添加我的简单模式-想知道为什么他们不在Meteor中包含updatedAt?你为我节省了很多时间。谢谢that moment.js也是一个很棒的包。。。我总是觉得操纵约会很困难。