Momentjs - 最近的星期五

时间:2016-10-10 15:15:36

标签: javascript momentjs

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

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

但它只适用于星期五 - 星期日,星期一早上它将参考即将到来的星期五,在这种情况下,这将有效:

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

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

有没有办法总是得到最近的星期五?无论当天是什么。

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

2 个答案:

答案 0 :(得分:3)

如果您不想使用图书馆,那就非常直接了



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

console.log(date)




随着时间

var date = moment();

var friday = date.day(date.day() >= 5 ? 5 :-2);

如果毫秒准确度并不重要,你可以拨打moment()两次使其成为一行(但我会更多地使用变量)

var friday = moment().day(moment().day() >= 5 ? 5 :-2);

答案 1 :(得分:0)

检查一下:

var date = moment().utc().isoWeekday(5);
if(moment().day() < 5) {
  date = date.add(-1, 'week');
}

console.log('Recent friday starts:', date.startOf('day').toDate());

console.log('Recent friday ends:', date.endOf('day').toDate());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.js"></script>