首页 新闻 会员 周边

在论坛里回复的时间字段用几分钟前,几小时前,几天前来代替怎么做呢?就像这个博客园的时间字段一样!请帮

0
悬赏园豆:100 [已关闭问题]

在论坛里回复的时间字段用几分钟前,几小时前,几天前来代替怎么做呢?就像这个博客园的时间字段一样!请帮帮忙咯!谢谢!

问题补充: 能说的详细点吗?怎么把数据库里的时间拿出来跟进入页面的时间比较呢?谢谢!如果能给个完整的代码将非常感谢!我是新手啊请不要计较我问得没水平呀!呵呵! public string DateStringFromNow(DateTime dt) { TimeSpan span = DateTime.Now - dt; if (span.TotalDays >60) { return dt.ToShortDateString(); } 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秒前"; } }
wulkdd021的主页 wulkdd021 | 初学一级 | 园豆:77
提问于:2009-10-22 14:04
< >
分享
其他回答(3)
0

呵呵,TimeSpan ts=DateTime1-DataTime2 ,得出的这个就是两个时间之间的间隔。

天堂口 | 园豆:514 (小虾三级) | 2009-10-22 14:26
0

并不是数据库中的时间字段用文字来代替了,而是通过判断时间间隔来显示不同的文字。

麒麟.NET | 园豆:3614 (老鸟四级) | 2009-10-22 14:33
0

记录回复的时间在数据库里面..进入页面时你根据时差来算就出来..

风浪 | 园豆:2996 (老鸟四级) | 2009-10-22 15:05
0

 将数据库读出来的时间格式化为字符串后,传入下面这个方法,即可。

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秒前";
}
}

 

 

canbeing | 园豆:1287 (小虾三级) | 2009-10-22 23:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册