ОБНОВЛЕНО , теперь это абсолютно правильно.
Прежде всего, пятница на самом деле имеет порядковый номер 5
, поэтому используйте его вместо 4. const nextFriday = moment().weekday(5)
- это правильная пятница.
Следующим важным моментом является то, что по умолчанию берется ближайшая пятница, это означает, что можно выбрать уже прошедшую пятницу (например, если сегодня суббота).В таком случае нам просто нужно добавить одну неделю.
Вот рабочий фрагмент кода:
function getWeekend() {
const today = moment();
const friday = moment().weekday(5);
// check if wee need to add one week in case of previous Friday selected
if (friday < today) {
friday.add(1, 'weeks');
}
friday.hours(18) // Weekend time: 18:00
friday.minutes(0)
friday.seconds(0)
return friday.diff(moment(), 'hours');
}
const hoursToFriday = getWeekend();
console.log(`Friday 18:00 will be in ${hoursToFriday} hours`);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>