2017-01-27 32 views
1

我目前正在使用MongoDB,NodeJS和Handlebars,並嘗試將用戶標識轉換爲時間戳,然後將該時間戳放入我的HTML中。現在,我可以寫{{user.id}}顯示在我的網站的用戶ID,我有改變的ID爲日期函數:從MongoDB插入帳戶創建日期到Handlebars中?

var dateFromObjectId = function (objectId) { 
    return new Date(parseInt(objectId.substring(0, 8), 16) * 1000); 
}; 

但是,我無法拼湊這兩位信息一起顯示在網站上的日期。

任何幫助,將不勝感激;謝謝!

+0

可以請你在你渲染車把文件的地方顯示代碼 – FastTurtle

回答

0

您需要創建車把helper

Handlebars.registerHelper('toDate', function(objectId, options) { 
    return new Date(parseInt(objectId.toString().substring(0, 8), 16) * 1000); 
}); 

,並通過對象ID作爲參數傳遞給它:

<p><b>Created at:</b> {{#toDate '58a4dd700000000000000000'}}{{/toDate}}</p> 

所以,你會看到的將是:

創建於:星期四Feb 16 2017 00:00:00 GMT + 0100

假設您傳遞用戶以這種形式從服務器MongoDB的文檔:

{ 
    user: { 
     _id: ObjectId("58a62ef00000000000000000"), 
     first_name: "John", 
     last_name: "Doe" 
    } 
} 

你可以使用這樣的:

<ul> 
    <li>First name: {{user.first_name}}</li> 
    <li>Last name: {{user.first_name}}</li> 
    <li>Created at: {{#toDate user._id}}{{/toDate}}</li> 
</ul> 

試試吧here