Хотел сделать фильтрацию периода, добавил 4 типа (За сегодня, за неделю, за месяц и за год)
Использую laravel фреймворк, сделать запросы для (сегодня, месяц, год) не составит труда но вот "за неделю"
сделать логики не хватает) Как будет правильней отобразить данные "за неделю", суть не в коде, а именно в логике
пример: Начало недели понедельник и конец воскресенье, пользователь захотел увидеть период "за неделю" в понедельник, отобразить текущую неделю (в этом случай записей может и не быть)? или отобразить прошедшую неделю? Или вовсе отобразить данные начиная с этого дня Понедельник до прошедшего Понедельника?
Это следует из бизнес-логики: что нужнее пользователю? Не уверены, спросите пользователей.
Вопрос относится не только к неделям – ко всем периодам. Вариант 1 с привязкой к календарной сетке будет давать пилообразно нарастающие показатели, в зависимости от времени, когда запрошены данные. Вариант 2 будет давать среднее значение (running average) за выбранный период.
И будьте тогда уж постоянны. «За сутки» – с 00 до 23:59 по часовому поясу пользователя, или за последние 24 часа с текущего момента. «За месяц» – за текущий месяц, обнуляя в начале каждого и нарастая к концу, или среднее значение за последние 31 день | календарный месяц до такого же числа предыдущего месяца? «За год» – за этот год (1-го января минимум, в декабре максимум) или до такой же даты прошлого года.
Скажем, для оценки пользователем скорости расходования средств на счёте могут быть полезны оба варианта. Средний расход за последние 7 дней удобно сравнивать с расходом за пред-предыдущие 7 дней. А привязка к календарному месяцу поможет спрогнозировать сумму счёта к оплате на конец месяца, если списывание происходит 1-го числа.