美文网首页
计算时间差

计算时间差

作者: lly_雪儿 | 来源:发表于2018-06-04 16:15 被阅读0次

/**

* 计算时间差

* @param publishTimeStamp 时间戳(格式:13位数字)

* @param nowTimeStamp 当前时间戳(传空使用当前时间)

*/

废话不多说,直接上代码

Vue.filter('timeDiff', function (publishTimeStamp, nowTimeStamp) {

if (!publishTimeStamp) {

return '';

  }

if (nowTimeStamp ===undefined) {

nowTimeStamp =new Date().getTime();

  }

// 发布时间解析

  let pubTimeObj =analyseDate(publishTimeStamp, true),

      pubYear = pubTimeObj.year,

      pubMonth = pubTimeObj.month,

      pubDate = pubTimeObj.date,

      pubHour = pubTimeObj.hour,

      pubMin = pubTimeObj.minute;

  // 今天时间解析

  let todayTimeObj =analyseDate(nowTimeStamp, true),

      todayYear = todayTimeObj.year, // 暂存,避免重复计算

      todayMN =new Date(`${todayTimeObj.year}/${todayTimeObj.month}/${todayTimeObj.date}`); // 今日零点

// 昨天时间解析

  let yesterdayTimeObj =analyseDate(nowTimeStamp -86400000, true),

    yesterdayMN =new Date(`${yesterdayTimeObj.year}/${yesterdayTimeObj.month}/${yesterdayTimeObj.date}`); // 昨日零点

// 今年时间分析

  let thisYearMN =new Date(`${todayYear}/01/01`); // 昨日零点

  if (nowTimeStamp - publishTimeStamp <60000) {// 一分钟内,显示“刚刚”

    return '刚刚';

  }else if (nowTimeStamp - publishTimeStamp <3600000) {// 一小时内,显示“xx分钟前”

    return `${parseInt((nowTimeStamp - publishTimeStamp) /60000)}分钟前`;

  }else if (publishTimeStamp > todayMN) {// 今天内,显示“15:30”

    return `${pubHour}:${pubMin}`;

  }else if (publishTimeStamp > yesterdayMN) {// 昨天,显示“昨天 15:30”

    return `昨天 ${pubHour}:${pubMin}`;

  }else if (publishTimeStamp > thisYearMN) {// 当年,显示“03-07 15:30”

    return `${pubMonth}-${pubDate} ${pubHour}:${pubMin}`;

  }else {// 去年之前,显示“2017-12-12 15:30”

    return `${pubYear}-${pubMonth}-${pubDate} ${pubHour}:${pubMin}`;

  }

});

相关文章

网友评论

      本文标题:计算时间差

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