如何将utc datetime转换为模糊时间戳

时间:2015-11-19 13:04:49

标签: javascript jquery asp.net-mvc datetime knockout.js

我有一个post action方法,可以将数据与utc日期格式的日期一起正确保存到数据库中。 现在,我有一个get方法,它以适当的格式从数据库中获取所有数据,如下所示:

  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);
    }

现在,我已经从nuget包中添加了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 在我的View页面上,我正在显示包含用户图像的帖子:

        <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 个答案:

没有答案