Momentjs - 获取最近的周五

elz*_*lzi 0 javascript momentjs

我正在尝试获取最近星期五的开始时间(上午 12:00 或上午 00:00)。这一直有效:

moment().isoWeekday(5).startOf('day').toDate()

但它只适用于周五->周日,周一早上它会引用即将到来的周五,在这种情况下这将起作用:

moment().add('-1', 'week').day(5).startOf('day').toDate()

但我需要它是动态的,并且如果可能的话,在一行中完成,这样我就不会在当天执行任何检查。

有没有办法始终获取最近的星期五?不管今天是什么日子。

编辑如果在星期五执行,我还试图让它返回当天(星期五)。

ade*_*neo 5

如果您不想使用库,那非常简单

var date = new Date();
while ( date.getDay() !== 5 ) date.setDate(date.getDate() -1);

console.log(date)
Run Code Online (Sandbox Code Playgroud)

与时刻

var date = moment();

var friday = date.day(date.day() >= 5 ? 5 :-2);
Run Code Online (Sandbox Code Playgroud)

如果毫秒精度并不重要,您可以调用moment()两次以使其成为一行(但我更愿意使用变量)

var friday = moment().day(moment().day() >= 5 ? 5 :-2);
Run Code Online (Sandbox Code Playgroud)