Любой способ фильтрации по номеру недели?

9

Drupal 7, Просмотров 3

У меня настроено несколько представлений, которые отображают данные в течение многих лет. Данные фильтруются по году, используя поле даты в качестве критерия фильтрации. Для каждого года у меня есть представления вложений, которые необходимо фильтровать по неделям. Вместо того, чтобы определять точные даты для недель каждого года и вводить их вручную в качестве критериев фильтрации, я задаюсь вопросом, есть ли способ добавить критерий фильтра для фильтрации по номеру недели, то есть от недели 1 до недели 52. Таким образом, единственная дата, которую необходимо установить, - это год для каждого просмотра, а остальное происходит автоматически в соответствии с номером недели.

Я собираю много данных по годам и неделям в табличном представлении, где каждый столбец является дополнительным вложением представления, и пытаюсь избежать необходимости вручную вводить фильтры для дат недели в году.

Кто-нибудь есть какие-либо советы / советы для меня по этому поводу? Огромное спасибо.

Вот код, с которым я сейчас играю:

function x_week_start($date) {
    $ts = strtotime($date);
    $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
    return date('Y-m-d', $start); 
}

function x_week_end($date) {
    $ts = strtotime($date);
    $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
    return date('Y-m-d', strtotime('next saturday', $start)); 
}

$date = '2013-01-14';
$start = x_week_start($date);
$end = x_week_end($date);
$inquiry_date = date('Y-m-d', $data->field_field_inquiry_date[0]['raw']['value']);

if ($inquiry_date <= $start) {return FALSE;}

Я должен добавить, что field_inquiry_date fieldэто метка времени Unix.

user1055810
источник
Я думаю, вам нужно создать свой собственный фильтр, посмотрите этот модуль. Это может помочь drupal.org/project/customfilter
Мохаммед Гомма
Похоже, подход ссылки Бала должен работать хорошо.
Найл Мерфи

Ответы:

2

Вот хитрость: создайте новый формат даты, перейдя в «Администрирование»> «Конфигурация»> «Язык и региональные стандарты»> «Дата и время» и щелкнув вкладку «Форматы» (admin / config / региональный / дата-время / форматы).

Установите значение W (это заглавная буква W), и он даст вам номер недели, который вы можете использовать с любой датой.

Таким образом, вы можете включить поле даты непосредственно в представления, установить фильтр W и использовать агрегирование, фильтр и т. Д. Без какого-либо дополнительного кодирования.

Антонио Эрнандес
источник