C# 显示在asp.net mvc中发布后的时间
我正在开发一个评论系统,我很想显示帖子发表以来的时间,而不是帖子发表的实际时间。有没有一个简单的方法可以做到这一点 目前我拉的日期添加C# 显示在asp.net mvc中发布后的时间,c#,asp.net,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc 4,我正在开发一个评论系统,我很想显示帖子发表以来的时间,而不是帖子发表的实际时间。有没有一个简单的方法可以做到这一点 目前我拉的日期添加 comment.DateAdded = DateTime.Now; 有几件事: 不要在web应用程序中使用DateTime.Now。服务器的时区应该是无关的。因为您存储的是发布时间,所以应该使用DateTime.UtcNow comment.DateAdded = DateTime.UtcNow; 阅读: 然后,您可以从当前时间中减去发布的时间 TimeS
comment.DateAdded = DateTime.Now;
有几件事:
- 不要在web应用程序中使用
。服务器的时区应该是无关的。因为您存储的是发布时间,所以应该使用DateTime.Now
DateTime.UtcNow
阅读:comment.DateAdded = DateTime.UtcNow;
- 然后,您可以从当前时间中减去发布的时间
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();
和Minutes
属性弄错。90分钟的运行时间将有TotalMinutes
,但TotalMinutes==90.0
和Hours==1
minutes==30
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()