zoukankan      html  css  js  c++  java
  • 模仿微信朋友圈发布时间,将过去时间格式化成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());

    效果图

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

    ====完===

  • 相关阅读:
    日期类型存储方法
    Log4j2的一些记录
    【Maven】学习记录
    HTML 图片加载问题
    浏览器的组成
    javascript数组的实例属性(方法)
    javascript数组的内置对象Array
    javascript之this
    css的position,float属性的理解
    简单介绍帧动画
  • 原文地址:https://www.cnblogs.com/notevar/p/5908018.html
Copyright © 2011-2022 走看看