Vue全局过滤器、moment的diff算法计算时间差

过滤器(字符加工)

  • 语法:
filters:{
    
    
	方法名(参数){
    
    
		return 值(参数加工后)
	}
}
  • 使用的地方
    • v-bind { {参数 | 方法名}}

全局过滤器

Vue.filter("方法名",function(参数){
    
    
	return (参数加工后)
})

moment

官方网站

  • 时间转换
把当前时间转换成某个格式
moment().format("YYYY/MM/DD hh:mm:ss")
给了我们一个时间戳转换成某个时间格式
moment(时间戳).format("YYYY/MM/DD hh:mm:ss")

  • diff计算时间差
moment  diff
momentA时间.diff(momentB时间,"h")
momentA时间-momentB时间 =小时差

应用场景

  • 需求:转换成与当前时间比较的小时差(24小时内) 超过24小时,使用正常时间

全局部署(在main.js文件中)

Vue.filter('formatTime', function (val) {
    
    
  // 需求:转换成与当前时间比较的小时差(24小时内) 超过24小时,使用正常时间
  //  moment时间a.diff(moment时间b,'hours')     moment时间a-moment时间b的小时差
  const _diff = moment().diff(moment(val), 'h')
  if (_diff < 1) {
    
    
    return '刚刚'
  } else if (_diff >= 1 && _diff < 24) {
    
    
    return _diff + '小时前'
  } else {
    
    
    return moment(val).format('YYYY/MM/DD HH:mm:ss')
  }
})

猜你喜欢

转载自blog.csdn.net/weixin_44757417/article/details/109128331