我想这个应该是干货!!!

实现效果:

通过时间戳显示 刚刚,多少分钟前,多少天前,多少月前!

  • 提示:方法名为dateDiff,支持一个参数timestamp,必须参数,本方法会自动补全为和JS侧支持的13位数值(因为后端返回时间戳可能只精确到秒)

上干货:

躁动起来,come on!
var dateDiff = function (timestamp) {
     // 补全为13位
    var arrTimestamp = (timestamp + '').split('');
    for (var start = 0; start < 13; start++) {
         if (!arrTimestamp[start]) {
           arrTimestamp[start] = '0';
         }
    }
    timestamp = arrTimestamp.join('') * 1;

    var minute = 1000 * 60;
    var hour = minute * 60;
    var day = hour * 24;
    var halfamonth = day * 15;
    var month = day * 30;
    var now = new Date().getTime();
    var diffValue = now - timestamp;

    // 如果本地时间反而小于变量时间
    if (diffValue < 0) {
        return '不久前';
    }

    // 计算差异时间的量级
    var monthC = diffValue / month;
    var weekC = diffValue / (7 * day);
    var dayC = diffValue / day;
    var hourC = diffValue / hour;
    var minC = diffValue / minute;

    // 数值补0方法
    var zero = function (value) {
       if (value < 10) {
          return '0' + value;
       }
        return value;
    };

    // 使用
    if (monthC > 12) {
        // 超过1年,直接显示年月日
        return (function () {
            var date = new Date(timestamp);
            return date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日';
        })();
    } else if (monthC >= 1) {
        return parseInt(monthC) + "月前";
    } else if (weekC >= 1) {
        return parseInt(weekC) + "周前";
    } else if (dayC >= 1) {
            return parseInt(dayC) + "天前";
    } else if (hourC >= 1) {
        return parseInt(hourC) + "小时前";
    } else if (minC >= 1) {
        return parseInt(minC) + "分钟前";
    }
        return '刚刚';
    };

     // 获取当前时间戳
    var nowtimestamp = new Date().getTime();
    console.log(dateDiff(nowtimestamp ));  //刚刚
  
    /* eg.
    ** console.log(dateDiff(1411111111111));  // 2014年09月19日
    ** console.log(dateDiff(1481111111111));  // 10月前
    ** console.log(dateDiff(1499911111111));  // 3月前
    ** console.log(dateDiff(1503211111111));  // 1月前
    */

拿去看,拿去用!

github:https://github.com/jycoldhands/show-before-time

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,264评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,065评论 25 709
  • 我们往往会仗着我们暂时拥有的那卑微的特权,以刁难别人而获得一份畸形的优越感,不可否认,中国人很多都有阿Q精...
    南瓜芋头阅读 2,784评论 2 2
  • 小时候,家里穷得够呛,那点粮食干脆不够吃,只能四处寻找野菜掺和着一点面子,糊弄着把日子过下去。那时总觉得山上没有不...
    悦者阅读 2,578评论 10 10
  • 临 今天先用针管笔勾线,然后直接用墨涂上去啦
    文咲筱嚣阅读 1,747评论 1 4

友情链接更多精彩内容