我想根据今天的日期获取上周六的日期,所以如果我们是周二,那么想要的日期将是 3 天前。
另外,如果今天是星期六,那么这将被算作上一个星期六。
例如:
today = Tuesday 09, July 2019
previous saturday => Saturday, 06 July 2019
next friday => Friday, 12 July
如果今天是星期六那么:
today = Saturday, 13 July 2019
previous saturday = Saturday, 13 July 2019
next friday = Friday, 20 July 2019
按照尼特的回答,这是我的代码,但我仍然得到错误的日期:
var dateObj = new Date() // friday July 19
dateObj.setDate(dateObj.getDate() - (6-dateObj.getDay())) // gives me thursday, 18 July
dateObj.setDate(dateObj.getDate() + 6) // gives me wednesday, 24 July
当您致电时,您会感到很方便getDay()
对于 Date 对象,Saturday 是列表中的最后一个条目6
(星期日是0
)。这意味着您需要倒退多少天才能获得“最近”的星期六6-dateObj.getDay()
将此与 JS 会“自动更正”日期的事实结合起来,使“负 7 月 1 日”是 6 月 29 日,你可以调用
dateObj.setDate(dateObj.getDate() - (6-dateObj.getDay()))
Now dateObj
根据需要,是最近的星期六。
然后可以类似地获得接下来的星期五:
dateObj.setDate(dateObj.getDate() + 6)
dateObj
现在是最近一个星期六之后的星期五。
我把数字弄错了。它是:
dateObj.setDate(dateObj.getDate() - (dateObj.getDay()+1)%7);
作为更一般的情况,你实际上可以只映射dateObj.getDay()
要几天才能回去。前面的代码块中的数学等效于:
const map = [1, 2, 3, 4, 5, 6, 0];
dateObj.setDate(dateObj.getDate() - map[dateObj.getDay()]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)