Записи за последнюю полностью завершенную неделю (т.е. с понедельника по воскресенье) в рельсах? - PullRequest
0 голосов
/ 08 июля 2019

Как я могу получить записи, которые были created_at за последнюю полностью завершенную неделю - т.е. между последним понедельником и последним воскресеньем?

Чтобы быть абсолютно ясным, если бы сегодня была среда 10 июля, я бы хотел, чтобы записи были между очень ранним утром понедельника 1 июля и очень поздним вечером воскресенья 7 июля. Если бы это была пятница 12 июля, я бы все еще захотел бы записи между понедельником 1 июля и очень поздним вечером в воскресенье 7 июля. Но если бы это был понедельник 15 июля, я бы хотел, чтобы записи были между понедельником 8 июля и очень поздним вечером в воскресенье 14 июля

Как мне этого добиться?

Примечание

Я могу легко получить записи за прошедшую неделю, то есть записи между текущим временем и неделей назад (т.е. Time.now - 7.days). Это не , что я после.

Ответы [ 2 ]

1 голос
/ 08 июля 2019
start_date = (Date.today - 1.week).beginning_of_week.beginning_of_day
end_date   = (Date.today - 1.week).end_of_week.end_of_day

Не забывайте о часовых поясах, если это имеет значение.Удачи

1 голос
/ 08 июля 2019

Вы можете получить на прошлой неделе с Time.now - 7.days, а затем получить начало и конец этой недели с start_date = (Time.now - 7.days).beginning_of_week и end_date = (Time.now - 7.days).end_of_week.

Тогда вы можете запросить как Model.where('created_at BETWEEN ? AND ?', start_date, end_date).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...