2015-11-19 37 views
0

我有一個帖子操作方法,它將數據與日期以utc日期格式妥善保存到數據庫中。 現在,我有獲取從數據庫中的所有數據在正確的格式這樣的get方法:從包裝的NuGet如何將utc日期時間轉換爲模糊時間戳

public JsonResult GetPosts() 
    { 
     var ret = (from post in db.Posts.ToList() 
        orderby post.PostedDate descending 
        select new 
        { 
         Message = post.Message, 
         PostedBy = post.PostedBy, 
         PostedByName = post.ApplicationUser.UserName, 
         PostedByAvatar = _GenerateAvatarUrlForUser(post.PostedBy), 
         PostedDate = post.PostedDate, 
         PostId = post.PostId, 
       }); 
     return Json(ret, JsonRequestBehavior.AllowGet); 
    } 

現在,我已經添加getTimeAgo插件,並添加到腳本文件夾中。 在我的Scripts文件夾中,我有一個wallpost.js文件,其中包含用於更新模型和客戶端視圖模型以自動更新UI的客戶端模型。 在這裏,我有一個getTimeAgo函數從utc datetime獲取模糊時間戳。 它是這樣的:

function getTimeAgo(varDate) { 
if (varDate) { 
    return $.timeago(varDate.toString().slice(-1) == 'Z' ? varDate : varDate + 'Z'); 
} 
else { 
    return ''; 
} 

} 但視圖頁面上,它只是顯示NaNyearsAgo。正如我剛纔所說,日期被保存在數據庫中正確的格式,但我無法將UTC日期時間模糊時間戳。 爲了增加簡潔性,我在這裏上傳了我的整個wallpost.js文件。 http://pastebin.com/VVUuMScL 在我查看頁面,我顯示後與用戶的形象是這樣的:

 <ul id="msgHolder" data-bind="foreach: posts"> 
<li class="postHolder"> 
    <img data-bind="attr: { src: PostedByAvatar }" width="150" height="200"> 

    <p><a data-bind="text: PostedByName"></a>: <span data-bind=" html: Message"></span></p> 
    <div class="postFooter"> 
     <span class="timeago" data-bind="text: PostedDate"></span>&nbsp;<a class="linkComment" href="#" data-bind=" click: toggleComment">Comment</a> 

    </div> 
</li> 

請建議我什麼錯誤。

+0

使用一個像樣的圖書館像[moment.js](http://momentjs.com/docs/# /顯示/從現在/) – Cerbrus

+0

嘗試將您的PostedDate轉換爲本地日期,然後將其傳遞給'timeago' http://jsfiddle.net/au8bq5jx/ –

+0

@RoyJ我沒有得到將發佈日期轉換爲本地日期的位置??? – duke

回答

0

問題在於日期格式及其解析。您可以使用moment.js library

的格式來格式化這樣就可以把模糊庫,並開始使用moment.js。

請,也看到這個答案moment.js時區處理,這可以與也影響到你: how to handle date for posting purposes in the server

+0

thnx爲答覆先生。我沒有在視圖頁面上獲得任何時間功能的智能感知。我在底部添加了參考文獻moment.min.js。應該如何格式化該行以便使用moment.js。我已經刪除了timeago函數,現在,數據應該以json格式到達knockout視圖模型。像這樣改變它//self.PostedDate = getTimeAgo(data.PostedDate); self.PostedDate = data.PostedDate; – duke

+0

應該是這樣的--- 如何在這裏插入淘汰賽數據綁定功能 – duke

+0

thnxx您的答覆。我自己解決了它。不需要時間js我將盡快更新解決方案 – duke

相關問題