根据传入日期获取周一至周日的日期

根据传入日期获取周一至周日的日期

function getWeekStartEndList(date) {
	let oneDayTime = 24 * 60 * 60 * 1000;
	let now = new Date(date);
	let nowTime = now.getTime()
	let day = now.getDay();
	if (day == 0) {
		let monday = moment(new Date(date) - 6 * oneDayTime).format("YYYY-MM-DD")
		let tuesday = moment(new Date(date) - 5 * oneDayTime).format("YYYY-MM-DD")
		let wednesday = moment(new Date(date) - 4 * oneDayTime).format("YYYY-MM-DD")
		let thursday = moment(new Date(date) - 3 * oneDayTime).format("YYYY-MM-DD")
		let friday = moment(new Date(date) - 2 * oneDayTime).format("YYYY-MM-DD")
		let saturday = moment(new Date(date) - 1 * oneDayTime).format("YYYY-MM-DD")
		let sunday = moment(new Date(date)).format("YYYY-MM-DD")
		return {monday, tuesday,wednesday,thursday,friday,saturday,sunday}
	} else {
		let monday = moment(new Date(nowTime - (day - 1) * oneDayTime)).format("YYYY-MM-DD")
		let tuesday = moment(new Date(nowTime - (day - 2) * oneDayTime)).format("YYYY-MM-DD")
		let wednesday = moment(new Date(nowTime - (day - 3) * oneDayTime)).format("YYYY-MM-DD")
		let thursday = moment(new Date(nowTime - (day - 4) * oneDayTime)).format("YYYY-MM-DD")
		let friday = moment(new Date(nowTime - (day - 5) * oneDayTime)).format("YYYY-MM-DD")
		let saturday = moment(new Date(nowTime - (day - 6) * oneDayTime)).format("YYYY-MM-DD")
		let sunday = moment(new Date(nowTime + (7 - day) * oneDayTime)).format("YYYY-MM-DD")
		return {monday, tuesday,wednesday,thursday,friday,saturday,sunday}
	}
}
获取指定日期所在周的周一周日,可以使用 JavaScript 中的 Date 对象和相关方法。下面是一个获取指定日期所在周周一周日的示例代码: ```javascript function getWeekMondayAndSunday(dateString) { const date = new Date(dateString); const dayOfWeek = date.getDay(); // 0-6,0 表示星期日,1 表示星期一,依次类推 const offset = dayOfWeek === 0 ? -6 : 1; // 如果日期是星期日,偏移量为 -6,否则为 1 const monday = new Date(date.getTime() - (dayOfWeek - 1) * 24 * 60 * 60 * 1000); const sunday = new Date(date.getTime() + (7 - dayOfWeek) * 24 * 60 * 60 * 1000); return { monday: monday.toLocaleDateString(), sunday: sunday.toLocaleDateString() }; } // 示例使用 const { monday, sunday } = getWeekMondayAndSunday('2023-03-01'); console.log('周一:', monday); console.log('周日:', sunday); ``` 解释一下这段代码: 1. 首先将传入日期字符串转换为 Date 对象。 2. 然后使用 Date 对象的 getDay() 方法获取传入日期所在的星期几,得到一个 0-6 的数字,其中 0 表示星期日,1 表示星期一,以此类推。 3. 计算从传入日期周一的偏移量,如果传入日期是星期日,偏移量为 -6,否则为 1。 4. 用 Date 对象的 getTime() 方法获取传入日期时间戳,然后根据偏移量计算出周一周日时间戳,最后将时间戳转换为 Date 对象。 5. 使用 toLocaleDateString() 方法将日期对象转换为本地字符串形式,返回包含周一周日的对象。 示例代码中假设传入日期字符串格式为 'YYYY-MM-DD',如果格式不同,需要根据实际情况进行调整。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肯德起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值