我正在制作一个评论系统,并希望显示自发布帖子以来的时间,而不是发布帖子的实际时间。有一个简单的方法吗?
目前我拉了dateAdded
comment.DateAdded = DateTime.Now;
答案 0 :(得分:1)
一些事情:
不要在网络应用程序中使用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
和TotalMinutes
属性。 90分钟的已用时间为TotalMinutes == 90.0
,但Hours == 1
和Minutes == 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()