获取日期相关

获取当前日期前几个月的日期

const getDefaultDate = (month) => {
	let currentDate = new Date();
	let oneMonthAgo = new Date();
	oneMonthAgo.setMonth(oneMonthAgo.getMonth() - month)
	return [dayjs(oneMonthAgo).format('YYYY-MM-DD'), dayjs(currentDate).format('YYYY-MM-DD')]
}

const dateArr = getDefaultDate(3)
console.log(dateArr) // ['2023-11-21', '2024-02-21']

获取两个日期间所有的月份

const generateMonths = (startMonth, endMonth) => {
	const months = [];
	const [startYear, startMonthNum] = startMonth.split('-').map(Number);
	const [endYear, endMonthNum] = endMonth.split('-').map(Number);
  
	let currentYear = startYear;
	let currentMonth = startMonthNum;
  
	while ( currentYear < endYear || (currentYear === endYear && currentMonth <= endMonthNum) ) {
		months.push(`${currentYear}-${String(currentMonth).padStart(2, '0')}`);
		if (currentMonth === 12) {
			currentYear++;
			currentMonth = 1;
		} else {
			currentMonth++;
		}
	}
  
	return months;
}

console.log(generateMonths('2023-12', '2024-09')) // ['2023-12', '2024-01',...,'2024-09']

两个日期(年月日)之间比较

const compareDatesByYearMonthDay = (date1, date2) => {
	// 获取日期1的年、月、日
	let year1 = date1.getFullYear();
	let month1 = date1.getMonth();
	let day1 = date1.getDate();
  
	// 获取日期2的年、月、日
	let year2 = date2.getFullYear();
	let month2 = date2.getMonth();
	let day2 = date2.getDate();
  
	// 创建新的日期对象,只包含年、月、日,时间部分为0
	let newDate1 = new Date(year1, month1, day1, 0, 0, 0, 0);
	let newDate2 = new Date(year2, month2, day2, 0, 0, 0, 0);
	// 使用时间戳比较两个日期
	if (newDate1.getTime() > newDate2.getTime()) {
	  	return true;
	} else if (newDate1.getTime() < newDate2.getTime()) {
	  	return false;
	} else {
	  	return false;
	}
}

两个日期(年月日时)之间的比较

const compareDatesByYearMonthDayHour = (date1, date2) => {
	// 获取日期1的年、月、日
	let year1 = date1.getFullYear();
	let month1 = date1.getMonth();
	let day1 = date1.getDate();
	let hour1 = date1.getHours()
  
	// 获取日期2的年、月、日
	let year2 = date2.getFullYear();
	let month2 = date2.getMonth();
	let day2 = date2.getDate();
	let hour2 = date2.getHours()
  
	// 创建新的日期对象,只包含年、月、日,时间部分为0
	let newDate1 = new Date(year1, month1, day1, hour1, 0, 0, 0);
	let newDate2 = new Date(year2, month2, day2, 12, 0, 0);
	// 使用时间戳比较两个日期
	if (newDate1.getTime() >= newDate2.getTime()) {
	  	return true;
	} else if (newDate1.getTime() < newDate2.getTime()) {
	  	return false;
	} else {
	  	return false;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值