2017-02-24 23 views
1

我使用moment.js將日期格式化爲從從express路由器傳遞到視圖的mongodb中檢索到的相對時間。如何從現在開始顯示MongoDB使用momentjs檢索日期的時間?

這裏是我的.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}] 

此輸出在瀏覽器截圖:

enter image description here


更多信息

如果我註釋掉從.pug文件這一行,這是輸出(我猜的哈巴狗自動格式化日期) // $('.memberSince')[0].innerHTML = moment().startOf(createdAt).fromNow(true);

enter image description here

任何幫助,將不勝感激,謝謝。

,並存儲在我的MongoDB數據庫中的實際日期的格式爲: enter image description here

+0

你想如何顯示日期時間!相對或確切的日期時間 – Robus

+0

@Robus我想在相對時間顯示,因爲我正在使用'.fromNow(true)'參數'true',如[doc](https://momentjs.com/docs/ #/顯示/從現在/)隱藏工作_ago_從文本。我想顯示這樣的:'會員自4天'或'會員自5個月7天'或'會員自3年5個月'或'會員自3小時以來'取決於數據庫。 –

+0

@Robus我已經更新了問題信息。 –

回答

1

我這個解決我自己。

其實,我錯過的是我必須通過字符串的時刻。

這裏是解決.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(),然後將該值作爲字符串傳遞給moment()

此外,你可以看到,沒有必要的.startOf()和我傳遞的true參數去fromNow(),因爲它只是從輸出刪除後綴,按文檔。

相關問題