js将日期转换为多少月前,周前,小时前,分钟前,刚刚

先封装一个处理函数

export const getFromNow = (dateTimeStamp) => {
	if (String(dateTimeStamp).length === 10) {
		dateTimeStamp = dateTimeStamp * 1000
	}
	let minute = 1000 * 60;
	let hour = minute * 60;
	let day = hour * 24;
	let week = day * 7;
	let halfamonth = day * 15;
	let month = day * 30;
	let now = new Date().getTime(); //获取当前时间毫秒
	let result = ''
	let diffValue = now - dateTimeStamp; //时间差

	if (diffValue < 0) {
		return;
	}
	let minC = diffValue / minute; //计算时间差的分,时,天,周,月
	let hourC = diffValue / hour;
	let dayC = diffValue / day;
	let weekC = diffValue / week;
	let monthC = diffValue / month;
	if (monthC >= 1 && monthC <= 3) {
		result = " " + parseInt(monthC) + "月前"
	} else if (weekC >= 1 && weekC <= 3) {
		result = " " + parseInt(weekC) + "周前"
	} else if (dayC >= 1 && dayC <= 6) {
		result = " " + parseInt(dayC) + "天前"
	} else if (hourC >= 1 && hourC <= 23) {
		result = " " + parseInt(hourC) + "小时前"
	} else if (minC >= 1 && minC <= 59) {
		result = " " + parseInt(minC) + "分钟前"
	} else if (diffValue >= 0 && diffValue <= minute) {
		result = "刚刚"
	} else {
		let datetime = new Date();
		datetime.setTime(dateTimeStamp);
		let Nyear = datetime.getFullYear();
		let Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
		let Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
		let Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
		let Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
		let Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
		result = Nyear + "-" + Nmonth + "-" + Ndate
	}
	return result;
}

使用

getFromNow(dayjs(日期).unix())

你可能感兴趣的:(javascript,时间)