Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Node.js 如何使用momentjs显示MongoDB检索到的日期从现在开始的时间?_Node.js_Mongodb_Express_Pug_Momentjs - Fatal编程技术网

Node.js 如何使用momentjs显示MongoDB检索到的日期从现在开始的时间?

Node.js 如何使用momentjs显示MongoDB检索到的日期从现在开始的时间?,node.js,mongodb,express,pug,momentjs,Node.js,Mongodb,Express,Pug,Momentjs,我正在使用将日期格式化为从mongodb检索到的相对时间,并从express router传递到视图 这是我的.pug文件: extends ../LoginLayout/LoginLayout block content - var createdAt = requser.local.profile.createdAt script(type="text/javascript"). $(document).ready(function() {

我正在使用将日期格式化为从mongodb检索到的相对时间,并从express router传递到视图

这是我的
.pug
文件:

extends ../LoginLayout/LoginLayout
block content
    - var createdAt = requser.local.profile.createdAt
    script(type="text/javascript").
        $(document).ready(function() {
            var createdAt = createdAt;
            $('.memberSince')[0].innerHTML = moment().startOf(createdAt).fromNow(true);
        });

    .parallax-container.display
        .parallax
            img(src='http://lorempixel.com/1920/900')
        .container.white-text.center
            img.circle(src=requser.local.profile.dp style='width: 200px;')
            h1 #{requser.local.name}
            h6 Member Since #[span.memberSince #{createdAt}]
这是浏览器中输出的屏幕截图


更多信息

如果我从
.pug
文件中注释掉这一行,这就是输出(我猜帕格会自动格式化日期)
/$('.memberSince')[0].innerHTML=moment().startOf(createdAt).fromNow(true)

任何帮助都将不胜感激,谢谢

我的MongoDB数据库中存储的实际日期格式如下: 我自己解决了这个问题

事实上,我错过的是,我必须将字符串传递到当前

以下是已解决的
.pug

- var createdAt = requser.local.profile.createdAt
script(type="text/javascript").
    $(document).ready(function() {
        var createdAt = Date.parse('!{createdAt}');            
        console.log(createdAt);
        $('.memberSince')[0].innerHTML = moment(createdAt).fromNow(true);
    })
我还通过简单地使用
var createdAt='获得了输出!{createdAt}
,但在浏览器的开发人员控制台中,它显示了一些传递字符串的已贬值警告,因此我使用
date.parse()
,将其解析为date,然后将值作为字符串传递给
moment()


另外,您可以看到不需要
.startOf()
,我将
true
参数传递给
fromNow()
,因为它只是从输出中删除后缀ago,如文档所示

你想如何显示日期和时间!相对日期或确切日期time@Robus我想在相对时间中显示,因为我使用的是
.fromNow(true)
参数
true
,如中所述,在文本中隐藏之前的作品。我想显示如下内容:
自4天以来的成员
自5个月以来的成员7天
自3年以来的成员5个月
自3个月以来的成员
,具体取决于数据库。@Robus我更新了问题信息。改为try.toNow(布尔值)。从现在起(true)也可以使用,
var start=moment.startof(CreatedAt)
var end=moment.now()
end.to(start)
有很多方法可以处理这个问题。请读给医生听。时间到X,时间到现在