moment基本使用

moment基本使用


Moment.js 是一个强大到有些不正经的日期处理库。

1.常用时间

// 过滤时间
export const filterTime = time => {
  return moment(time).format('YYYY-MM-DD')
}

2.过滤时间差

// 方法一: moment 过滤 4分钟前
// 引入
// import moment from 'moment'
// import 'moment/locale/zh-cn'
export const formatDate = date => {
  // 超过 7 天显示日期
  if (moment(date).isBefore(moment().subtract(7, 'days'))) {
  	return moment(date).format('YYYY-MM-DD')
  } else {
  	// 1小时,xx 小时前,x 天前
  	return moment(date).from(moment())
  }
}
// 方法二:原生js过滤  4分钟前
export const fnFormatDate = (time) => {
  let ago, curTime, diff, int;
  time = moment(time).valueOf()
  time -= 0;
  if (("" + time).length === 10) {
    time *= 1000;
  }
  int = parseInt;
  curTime = +new Date();
  diff = curTime - time;
  ago = "";
  if (1000 * 60 > diff) {
    ago = "刚刚";
  } else if (1000 * 60 <= diff && 1000 * 60 * 60 > diff) {
    ago = int(diff / (1000 * 60)) + "分钟前";
  } else if (1000 * 60 * 60 <= diff && 1000 * 60 * 60 * 24 > diff) {
    ago = int(diff / (1000 * 60 * 60)) + "小时前";
  } else if (1000 * 60 * 60 * 24 <= diff && 1000 * 60 * 60 * 24 * 30 > diff) {
    ago = int(diff / (1000 * 60 * 60 * 24)) + "天前";
  } else if (1000 * 60 * 60 * 24 * 30 <= diff && 1000 * 60 * 60 * 24 * 30 * 12 > diff) {
    ago = int(diff / (1000 * 60 * 60 * 24 * 30)) + "月前";
  } else {
    ago = int(diff / (1000 * 60 * 60 * 24 * 30 * 12)) + "年前";
  }
  return ago;
}

3.过滤今天、昨天

// 过滤今天 昨天 和前天
export const filterTextTime = time => {
  let timeTxt = ''
  const nowDate = new Date()
  // 获取今天 
  let today = moment(nowDate).startOf('day')
  // 或者
  // let today = moment(nowDate).add(1,'days');
  // 获取昨天
  let yesToday = moment(nowDate).subtract(1, 'days').startOf('day')
  // let today = moment(nowDate).add(-1,'days');
  // 获取前天
  let beforeYesToday = moment(nowDate).subtract(2, 'days').startOf('day')
  // 比较
  if (moment(time).isSame(today, 'day')) {
    timeTxt = '今天'
  } else if (moment(time).isSame(yesToday, 'day')) {
    timeTxt = '昨天'
  } else if (moment(time).isSame(beforeYesToday, 'day')) {
    timeTxt = '前天'
  } else {
    timeTxt = moment(time).format('YYYY-MM-DD')
  }
  return timeTxt
}

4.过滤年龄

// 过滤年龄
export const filterBirth = (birthday) => {
  // 方法一
  const nowDate = new Date();
  let date1 = moment(birthday)
  let date2 = moment(nowDate)
  return date2.diff(date1, 'year')
  // 方法二
	// let age;
	// const nowDate = new Date();
	// const birthDate = birthday ? new Date(birthday) : new Date();
	// const nowY = nowDate.getFullYear();
	// const birthY = birthDate.getFullYear();
	// const nowM = nowDate.getMonth();
	// const birthM = birthDate.getMonth();
	// const nowD = nowDate.getDate();
	// const birthD = birthDate.getDate();
	// if (nowDate.getTime() < birthDate.getTime()) {
	// 	age = 0;
	// } else {
	// 	if (nowY == birthY) {
	// 		age = 0;
	// 	} else {
	// 		age = nowY - birthY;
	// 		if (nowM < birthM) {
	// 			age--;
	// 		} else if (nowM == birthM && nowD < birthD) {
	// 			age--;
	// 		}
	// 	}
	// }
	// return age;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值