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

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());

效果图

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

====完===

posted @ 2016-09-26 09:45  notevar  阅读(7839)  评论(0编辑  收藏  举报