显示时间如何填充Stackoverflow和Facebook do-C#

显示时间如何填充Stackoverflow和Facebook do-C#,c#,.net,asp.net,asp.net-mvc,asp.net-mvc-2,C#,.net,Asp.net,Asp.net Mvc,Asp.net Mvc 2,我正在构建一个ASP.NET MVC 2应用程序,允许用户在某些部分发布数据。我想以Stackoverflow和Facebook相同的格式显示“Posted At” i、 e.在这个网站上,当我发布这个问题时,它会显示“3秒前提问”,然后是“3分钟前提问”,几天后它会显示日期 我的应用程序是C#,如果有人能为我指出实现这一目标的最佳方法,那就太好了 看看jQuery插件。我在我正在建设的一个网站上使用它,效果非常好。在C#中,它看起来基本上是这样的。另一个答案是javascript,但这似乎不是

我正在构建一个ASP.NET MVC 2应用程序,允许用户在某些部分发布数据。我想以Stackoverflow和Facebook相同的格式显示“Posted At”

i、 e.在这个网站上,当我发布这个问题时,它会显示“3秒前提问”,然后是“3分钟前提问”,几天后它会显示日期


我的应用程序是C#,如果有人能为我指出实现这一目标的最佳方法,那就太好了

看看jQuery插件。我在我正在建设的一个网站上使用它,效果非常好。

在C#中,它看起来基本上是这样的。另一个答案是javascript,但这似乎不是你的问题

            DateTime now = DateTime.UtcNow;
            DateTime postedAt = new DateTime();
            var age = now.Subtract(postedAt);
            if (age < new TimeSpan(0, 1, 0))
                return (((int)age.TotalSeconds).ToString() + " seconds ago");
            else if (age < new TimeSpan(1, 0, 0))
                return (((int)age.TotalMinutes).ToString() + " minutes ago");
            else if (age < new TimeSpan(24, 0, 0))
                return (((int)age.TotalHours).ToString() + " hours ago");
            else
                return (((int)age.TotalDays).ToString() + " days ago");
DateTime now=DateTime.UtcNow;
DateTime postedAt=新日期时间();
var年龄=现在减去(事后);
如果(年龄<新时间跨度(0,1,0))
返回(((int)age.TotalSeconds.ToString()+“秒前”);
else if(年龄<新时间跨度(1,0,0))
return(((int)age.TotalMinutes.ToString()+“分钟前”);
else if(年龄<新时间跨度(24,0,0))
return(((int)age.TotalHours.ToString()+“hours ago”);
其他的
return(((int)age.TotalDays.ToString()+“days ago”);

您的问题的可能重复项被标记为C#,但正如您提到的Facebook,它更新“time ago”值而不刷新,您还(或仅?)需要一个JavaScript实现。cHao是对的,Jeff甚至给出了答案谢谢各位,我搜索了,但没有看到结果。谢谢我不认为timeago适用于不同的语言,只适用于英语。是的,我认为你是对的,只适用于英语。不过,它应该是一个足够简单的脚本,以便您可以根据需要定制它。@Paul,我的理解是它只适用于当地时间。不过,标准做法是在所述时区内将机器上的UTC转换为本地。因此,在客户端的PC上转换为本地,然后使用timeago来处理它。如果timeago能够正确理解带注释的UTC时间(有ISO后缀,但为时已晚,而且我已经醉得想不起来了……),我也不会感到惊讶。timeago还有一个很好的功能,即实际时间可以作为工具提示,以防您需要比“一个月前”更精确的时间。