Views добавить вычисляемое поле

Главные вкладки

Аватар пользователя Gnom7 Gnom7 19 февраля 2019 в 7:33
1

Здравствуйте! Я только начинаю осваивать Views.
Подскажите как сделать вычисляемое поле в представлении? Например, вычислить сколько прошло дней с даты поля А до даты поля Б.

Лучший ответ

Аватар пользователя marassa marassa 19 февраля 2019 в 13:23
1

А как преобразовать секунды в дни?

В настройках поля: Rewrite results, Override output,
{{ (имя_поля|trim/(60*60*24))|round }}
PS Полноценный twig умеет даже сам вычислить разницу между датами, только вот в Drupal функция diff отключена из соображений безопасности.

Комментарии

Аватар пользователя Gnom7 Gnom7 19 февраля 2019 в 11:10
1

Первого модуля нет на D8, второй не подходит.
Зато наткнулся на https://www.drupal.org/project/views_simple_math_field - этот модуль позволяет вычесть одну дату из другой и вывести результат в секундах. А как преобразовать секунды в дни? При помощи PHP и MySQL я знаю как это сделать, а как с помощью Views понимаю.

Аватар пользователя marassa marassa 19 февраля 2019 в 13:23
1

А как преобразовать секунды в дни?

В настройках поля: Rewrite results, Override output,
{{ (имя_поля|trim/(60*60*24))|round }}
PS Полноценный twig умеет даже сам вычислить разницу между датами, только вот в Drupal функция diff отключена из соображений безопасности.

Аватар пользователя ogo ogo 23 августа 2021 в 12:59

Добрый день! помогите разобраться с подсчетом дней.
Поставил модуль views_simple_math_field + библиотеку, все работает. Формат Поля даты пробовал разный и короткий и Unix и тд. Считает только год, дни и месяцы не считает.
формула: (@field_datew3 - @field_datew2)
10.08.2021 - 26.02.1999 = 22
1628596800UTCC - 920030400UTCC = 22
Все варианты перепробовал ничего не получается. Как получить результат в дня или в секундах?

Аватар пользователя marassa marassa 23 августа 2021 в 13:20
1

ogo wrote: Как получить результат в дня или в секундах?

1. Снести ненужный модуль views_simple_math_field.
2. Сделать всё на твиге через rewrite как я описал.

Аватар пользователя ogo ogo 23 августа 2021 в 13:57

к сожалению я настолько не втыкаю. через rewrite- это настаивать .htaccess?
с этими настройками не сталкивался Rewrite results, Override output
там только одна дата {{ (имя_поля|trim/(60*60*24))|round }}
не пойму как я отфильтрую ноды по подсчитанным дням

Аватар пользователя marassa marassa 23 августа 2021 в 15:24
1

ogo wrote: не пойму как я отфильтрую ноды по подсчитанным дням

Так по ним ещё и фильтровать надо? Это в корне меняет дело. Для фильтрации средствами Views вычисленное значение должно храниться в базе данных. Возможно, поможет модуль Computed Field, можно просто в hook_presave вычислять и сохранять разницу, но в любом случае нужно писать на PHP. Без программирования не думаю что это можно сделать.