DateTime.Parse(pubDate).ToUniversalTime()
时间格式的转换很重要!! 不然 日期格式不一致时,会计算错误!!
/// <summary>
/// 格式化输出日期
/// </summary>
/// <param name="pubDate"></param>
/// <returns>XXX小时前,XXX天以前,XXX分钟以前</returns>
public static string FormatDateTime(string pubDate)
{
//string sql = string.Format("select DATEDIFF(mi,'{0}',getdate()) 'min',DATEDIFF(hh,'{0}',getdate()) 'hour',DATEDIFF(dd,'{0}',getdate()) 'day'", pubDate);
DateTime dt1 = DateTime.Parse(pubDate).ToUniversalTime();//2005-11-5 5:21:25
DateTime dt2 = DateTime.Now;
TimeSpan ts1 = new TimeSpan(dt1.Ticks);
TimeSpan ts2 = new TimeSpan(dt2.Ticks);
TimeSpan tsp = ts1.Subtract(ts2).Duration();
//string dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
//TimeSpan tsp = DateTime.Parse(DateTime.Now.ToString()) - DateTime.Parse(pubDate);
//TimeSpan tsp = DateTime.Now.Subtract(DateTime.Parse(pubDate));
int hr = tsp.Hours;
int min = tsp.Minutes;
int day = tsp.Days;
string result = pubDate;
if (day > 1)
{
return (day + "天之前");
}
if (hr > 1)
{
return (hr + "小时之前");
}
if (min > 1)
{
return (min + "分钟之前");
}
return result; ;
}