模仿微信朋友圈發布時間,使用擴展方法將將過去時間展示成xx(秒/分/小時/天)前,以留言列表中的留言時間為例,先來看一下直接的時間展示效果(date.ToString("yyyy/MM/dd HH:mm:ss"))
感覺很一般,沒有什么特別
下面 我們寫一個拓展方法,將留言時間格式化成xx(秒/分/小時/天)前
decimal.Truncate(data)//取decimal整數位
public static class HtmlExpansion
{ //只格式化2天內的時間
public static string AgoDateFomat(this DateTime date)
{
var times = DateTime.Now - date;
var s = Convert.ToDecimal(times.TotalSeconds);//秒
var m = Convert.ToDecimal(times.TotalMinutes);//分鍾
var h = Convert.ToDecimal(times.TotalHours);//小時
var d = Convert.ToDecimal(times.TotalDays);//天
return s < 60 ? "" + decimal.Truncate(s) + " 秒前" : m < 60 ? "" + decimal.Truncate(m) + " 分鍾前" : h < 24 ? "" + decimal.Truncate(h) + " 小時前" : d < 2 ? "" + decimal.Truncate(d) + " 天前" : date.ToString("yyyy/MM/dd HH:mm:ss");
}
}
直接在date后面調用date.AgoDateFomat(),展示效果如下
Console.WriteLine(DateTime.Parse("2016-09-15 18:43:00").AgoDateFomat()); Console.WriteLine(DateTime.Parse("2016-09-15 16:36:00").AgoDateFomat()); Console.WriteLine(DateTime.Parse("2016-09-14 18:36:00").AgoDateFomat());

效果圖


是不是感覺比之前的時間高大上了一點
====完===

