发布自asp.net mvc发布以来的时间

时间:2014-08-17 03:57:13

标签: c# asp.net asp.net-mvc-4

我正在制作一个评论系统,并希望显示自发布帖子以来的时间,而不是发布帖子的实际时间。有一个简单的方法吗?

目前我拉了dateAdded

comment.DateAdded = DateTime.Now;

2 个答案:

答案 0 :(得分:1)

一些事情:

  • 不要在网络应用程序中使用DateTime.Now。服务器的时区应该是无关紧要的。由于您要存储帖子的发布时间,因此您应该使用DateTime.UtcNow

    comment.DateAdded = DateTime.UtcNow;
    

    阅读:The Case Against DateTime.Now

  • 然后,您可以从当前时间中减去帖子的制作时间。

    TimeSpan elapsed = DateTime.UtcNow - comment.DateAdded;
    
  • 获得TimeSpan对象后,您可以使用各种方法和属性。

    // to get the total hours elapsed
    double hours = elapsed.TotalHours;
    
    // to get the total minutes elapsed
    double minutes = elapsed.TotalMinutes;
    
    // to get a string output of the elapsed time in the default format
    string s = elapsed.ToString();
    

    小心不要误解MinutesTotalMinutes属性。 90分钟的已用时间为TotalMinutes == 90.0,但Hours == 1Minutes == 30

答案 1 :(得分:0)

使用此HelperExtension

public static class TimeHelper{
public static string TimeSpanString(this DateTime date) {
            var Now = DateTime.Now-date; //better to use DateTime.UtcNow
            if(Now.Days>0){
                return Now.Days+" Days "+Now.Hours+" Hours "+Now.Minutes+" Minutes";
            }
            if (Now.Hours > 0)
            {
                return Now.Hours + " Hours " + Now.Minutes + " Minutes";
            }
            return  Now.Minutes + " Minutes";

        }
   }

如何使用它。

comment.DateAdded.TimeSpanString()