MENU

javascript实现几分钟前、几小时前、几天前timeago功能

April 6, 2020 • javascript

方便小程序内直接使用

 timeago(inputStamp) {//输入毫秒时间戳
            var publishTime = inputStamp,
                  date = new Date(publishTime), //获取dateStr的标准格式 console.log(date) 打印结果  Thu Sep 06 2018 18:47:00 GMT+0800 (中国标准时间)
                  // 获取date 中的 年 月 日 时 分 秒
                  Y = date.getFullYear(), //年
                  M = date.getMonth() + 1, //月
                  D = date.getDate(), //日
                  H = date.getHours(), //小时
                  m = date.getMinutes(), //分钟
                  s = date.getSeconds(); //秒
            // 对 月 日 时 分 秒 小于10时, 加0显示 例如: 09-09 09:01
            if (M < 10) {
                  M = '0' + M;
            }
            if (D < 10) {
                  D = '0' + D;
            }
            if (H < 10) {
                  H = '0' + H;
            }
            if (m < 10) {
                  m = '0' + m;
            }
            if (s < 10) {
                  s = '0' + s;
            }
            var nowTime = new Date().getTime(),
                  /*获取此时此刻日期的秒数*/
                  delayStamp = nowTime - publishTime, // 获取此时 秒数 与 要处理的日期秒数 之间的差值
                  delay_days = parseInt(delayStamp / 86400000),
                  /*一天86400000毫秒 获取相差的天数 取整*/
                  delay_hours = parseInt(delayStamp / 3600000),
                  /*一时3600000毫秒 获取相差的小时 取整*/
                  delay_minutes = parseInt(delayStamp / 60000),
                  /*一分60000毫秒 获取相差的小时 取整*/
                  delay_secodes = parseInt(delayStamp / 1000); /*一分1000毫秒 获取相差的秒数 取整*/
            if (delay_days > 0 && delay_days < 3) { //相差天数 0 < delay_days < 3 时, 直接返出
                  return delay_days + "天前";
            } else if (delay_days <= 0 && delay_hours > 0) {
                  return delay_hours + "小时前";
            } else if (delay_hours <= 0 && delay_minutes > 0) {
                  return delay_minutes + "分钟前";
            } else if (delay_secodes < 60) {
                  if (delay_secodes <= 0) {
                        return "刚刚";
                  } else {
                        return delay_secodes + "秒前";
                  }
            } else if (delay_days >= 3 && delaydays < 30) {
                  return M + '-' + D + ' ' + H + ':' + m;
            } else if (delay_days >= 30) {
                  return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
            }
      }
转载请注明出处,并添加原文地址

Archives QR Code Tip
QR Code for this page
Tipping QR Code