我有一個帖子操作方法,它將數據與日期以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> <a class="linkComment" href="#" data-bind=" click: toggleComment">Comment</a>
</div>
</li>
請建議我什麼錯誤。
使用一個像樣的圖書館像[moment.js](http://momentjs.com/docs/# /顯示/從現在/) – Cerbrus
嘗試將您的PostedDate轉換爲本地日期,然後將其傳遞給'timeago' http://jsfiddle.net/au8bq5jx/ –
@RoyJ我沒有得到將發佈日期轉換爲本地日期的位置??? – duke