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.
Ответы:
Вот хитрость: создайте новый формат даты, перейдя в «Администрирование»> «Конфигурация»> «Язык и региональные стандарты»> «Дата и время» и щелкнув вкладку «Форматы» (admin / config / региональный / дата-время / форматы).
Установите значение W (это заглавная буква W), и он даст вам номер недели, который вы можете использовать с любой датой.
Таким образом, вы можете включить поле даты непосредственно в представления, установить фильтр W и использовать агрегирование, фильтр и т. Д. Без какого-либо дополнительного кодирования.
источник
https://www.drupal.org/project/views_date_format_sql может помочь вам сгруппировать данные таблицы с использованием форматеров даты SQL.
источник