美文网首页
我想这个应该是干货!!!

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

作者: Coldhands | 来源:发表于2017-10-19 12:37 被阅读0次

实现效果:

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

  • 提示:方法名为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

相关文章

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

    实现效果: 通过时间戳显示 刚刚,多少分钟前,多少天前,多少月前! 提示:方法名为dateDiff,支持一个参数t...

  • 是干货还是糟粕?知识为何难变现?

    现在随便翻开朋友圈,知乎,简书,公众号,满屏幕的创业干货,赚钱干货。那么什么叫干货呢? 干货这个词应该是来自农牧业...

  • 我应该是想钱想疯了!

    看到周围的人不仅有正经工作,还有几份兼职事业,做的不亦乐乎,很是羡慕。 她们有勇气,敢于迈出来,去尝试做。而我总是...

  • 我想应该是这样

    真正的爱情不着急不等待, 刚好遇见, 刚好喜欢, 刚好爱上, 一不小心白头! 在没遇见她(他)的日子里要努力学习知...

  • 我想应该是极光

    2022.5.16中午小憩,仿佛中,我走出房门,忽然的发现眼前世界与我所住的世界不一样了,我、房屋、南方北方、整个...

  • 法学论文写作的三个要点--笔记

    有意思的东西要说,要有点干货有干货,这应该是最重要的,这个在于思考,在于平日的阅读及其他的积累。 “对于社会科学研...

  • mac 如何安装github上的testerSunshine12

    废话不多说,直接上干货Mac 和 Linux 系统应该是自带了 python,但是这个项目用的是 Python3....

  • 干货

    最近发现好多文章都在写干货 公众号,简书,论坛,知乎…… 考研干货,创业干货,营销干货,写作干货 我也在思考这个问...

  • 我想,我应该是真的老了。

    今天去看了我的少女时代,看着他们跌跌撞撞的那些小故事,也好像看见了当年的我。那些蠢事,当年的我也乐在其中。面对凶...

  • 我想,这次来到大学,这个日更应该是没有这么好断了。

网友评论

      本文标题:我想这个应该是干货!!!

      本文链接:https://www.haomeiwen.com/subject/nvjuuxtx.html