如何使用JavaScript获取从上周的星期一到上周的星期日的日期我试着在不同的来源中寻找资料,但是没有找到答案,希望他们在这里对我有所帮助
elcex8rz1#
假设时区不是一个问题,你可以使用Date.prototype.setDate()首先获得上周的锚,然后使用getDay知道你在哪一天,通过锚点抵消,你可以获得周一和周日:
Date.prototype.setDate()
getDay
const today = new Date(); const oneWeekAgo = new Date(+today); oneWeekAgo.setDate(today.getDate() - 7); oneWeekAgo.setHours(0, 0, 0, 0); // Let's also set it to 12am to be exact const daySinceMonday = (oneWeekAgo.getDay() - 1 + 7) % 7 const monday = new Date(+oneWeekAgo); monday.setDate(oneWeekAgo.getDate() - daySinceMonday); const sunday = new Date(+oneWeekAgo); sunday.setDate(monday.getDate() + 6); console.log(monday, sunday);
fhg3lkii2#
首先,让我们找到今天的日子。
const today = new Date();
然后我们就能知道今天是什么日子了
const dayOfWeek = today.getDay()
上面的内容将返回星期几,其中星期日= 0,星期六= 6。有了这个,我们可以通过从一天中减去一周中的一天来回到上个星期日。
const lastSunday = new Date(today.getFullYear(), today.getMonth(), today.getDate() - dayOfWeek);
然后得到最后一个星期一,我们只需从这个日期减去6天。
const lastMonday = new Date(today.getFullYear(), today.getMonth(), today.getDate() - dayOfWeek - 6);
然后我们可以将日期转换为字符串
const lastMondayStr = lastMonday.toISOString().slice(0, 10); const lastSundayStr = lastSunday.toISOString().slice(0, 10);
总的来说它看起来像这样
const today = new Date(); const dayOfWeek = today.getDay() const lastSunday = new Date(today.getFullYear(), today.getMonth(), today.getDate() - dayOfWeek); const lastMonday = new Date(today.getFullYear(), today.getMonth(), today.getDate() - dayOfWeek - 6); const lastMondayStr = lastMonday.toISOString().slice(0, 10); const lastSundayStr = lastSunday.toISOString().slice(0, 10); console.log('Period ' + lastMondayStr + ' - ' + lastSundayStr)
2条答案
按热度按时间elcex8rz1#
假设时区不是一个问题,你可以使用
Date.prototype.setDate()
首先获得上周的锚,然后使用getDay
知道你在哪一天,通过锚点抵消,你可以获得周一和周日:fhg3lkii2#
首先,让我们找到今天的日子。
然后我们就能知道今天是什么日子了
上面的内容将返回星期几,其中星期日= 0,星期六= 6。
有了这个,我们可以通过从一天中减去一周中的一天来回到上个星期日。
然后得到最后一个星期一,我们只需从这个日期减去6天。
然后我们可以将日期转换为字符串
总的来说它看起来像这样