Это день на текущей неделе? Момент JS - PullRequest
0 голосов
/ 31 марта 2020

У меня есть одна проблема. Можете ли вы сказать мне, как проверить это день на текущей неделе?

Я работаю над какой-то службой для прогноза погоды. У меня есть текущий день, но я должен проверить, работает ли он на текущей неделе. Единственное, что я знаю, это то, что я должен использовать функцию isSame из Moment JS. Это моя строка кода.

 if(this.conversation.payload.grain==="week" && moment().startOf('week').isSame(this.conversation.payload.forecastTime))

"ForecastTime" - текущий день. Тем не менее, условие не является хорошим и не входит, если l oop.

Спасибо!

1 Ответ

0 голосов
/ 31 марта 2020

Предполагается, что ваша forecastedDate является фактической javascript датой или моментальным объектом.

Функция isSame также принимает параметр гранулярности.

Просто добавьте параметр 'week' в метод isSame, например, так:

if(this.conversation.payload.grain==="week" &&
    moment().startOf("week").isSame(this.conversation.payload.forecastTime, "week"))

Чтобы получить день недели, легко сделать это с помощью библиотеки js.

Это даст вам день недели на основе локаль:

var dayOfWeek = moment(this.conversation.payload.forecastTime).weekday()

Например, если локаль использует понедельник в качестве первого дня недели, то 0 = понедельник и 6 = воскресенье. Помните, что полученное вами значение будет меняться в зависимости от текущей локали.

Если вы не хотите, чтобы значение менялось в зависимости от локали, но всегда хотите получать значение с понедельника по воскресенье, используйте isoWeekday () :

var dayOfWeek = moment(this.conversation.payload.forecastTime).isoWeekday()

Это даст вам целое число 1-7. 1 = понедельник, 7 = воскресенье.

Так, например, если приведенный выше код вернул 4, вы будете знать, что это четверг.

Для получения дополнительной информации о weekday (), isoWeekday и функции day (), проверьте moment js docs .

...