js 按断时间是昨天,几天前,几周前

function getDateDiff(dateTimeStamp){
    var result = '';
    var date = (new Date());
    var theDate= new Date(dateTimeStamp).getTime();
    var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime(); //今天凌晨
    var yestday = new Date(today - 24*3600*1000).getTime();
    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 -theDate;
    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;
    if(monthC>=1){
        result="" + parseInt(monthC) + "月前";
    }
    else if(weekC>=1){
        result="" + parseInt(weekC) + "周前";
    }
    else if(dayC>=1){
        result=""+ parseInt(dayC) +"天前";
    }
    else if(hourC>=1){
        if(theDate< today && yestday <= theDate){
            result="昨天";
        }else{
            result=""+ parseInt(hourC) +"小时前";
        }

    }
    else if(minC>=1){
        result=""+ parseInt(minC) +"分钟前";
    }else{
        result="刚刚";
    }

    return result;
}
注意:

1:如果 dateTimeStamp 的值为 2019-12-14T20:12:33
那么此方法在ios设备上是无效的,所以需要做ios兼容
将上面方法中的

var theDate = new Date(dateTimeStamp).getTime();

替换为

    var date_stamp= dateTimeStamp.replace(/T/g,' ').replace(/[ :]/g, "-").split("-");
    var theDate = new Date(date_stamp[0], date_stamp[1]-1, date_stamp[2], date_stamp[3], date_stamp[4], date_stamp[5]);
    theDate=theDate.getTime();

如此,安卓,ios均可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值