你的位置:首页 > ASP.net教程

[ASP.net教程]模仿微信朋友圈发布时间,将过去时间格式化成xx(秒/分/小时/天)前


模仿微信朋友圈发布时间,使用扩展方法将将过去时间展示成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(),展示效果如下

效果图

是不是感觉比之前的时间高大上了一点

====完===