在论坛里回复的时间字段用几分钟前,几小时前,几天前来代替怎么做呢?就像这个博客园的时间字段一样!请帮帮忙咯!谢谢!
呵呵,TimeSpan ts=DateTime1-DataTime2 ,得出的这个就是两个时间之间的间隔。
并不是数据库中的时间字段用文字来代替了,而是通过判断时间间隔来显示不同的文字。
记录回复的时间在数据库里面..进入页面时你根据时差来算就出来..
将数据库读出来的时间格式化为字符串后,传入下面这个方法,即可。
Code
/// <summary>
/// 转化时间显示格式为:×小时/天/前发布
/// </summary>
/// <param name="OldDate">要转化的时间</param>
/// <returns>字符串</returns>
/// <author>canbeing@080124</author>
public static string ConvertDateTimeView(string OldDate)
{
DateTime newDateTime = Convert.ToDateTime(OldDate);
TimeSpan span = DateTime.Now - newDateTime;
if (span.TotalDays > 60)
{
return newDateTime.ToString("yyyy-MM-dd");
}
else if (span.TotalDays > 30)
{
return "1个月前";
}
else if (span.TotalDays > 14)
{
return "2周前";
}
else if (span.TotalDays > 7)
{
return "1周前";
}
else if (span.TotalDays > 1)
{
return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));
}
else if (span.TotalHours > 1)
{
return string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));
}
else if (span.TotalMinutes > 1)
{
return string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));
}
else if (span.TotalSeconds >= 1)
{
return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));
}
else
{
return "1秒前";
}
}