Здравствуйте! Я только начинаю осваивать Views.
Подскажите как сделать вычисляемое поле в представлении? Например, вычислить сколько прошло дней с даты поля А до даты поля Б.
В настройках поля: Rewrite results, Override output, {{(имя_поля|trim/(60*60*24))|round}}
PS Полноценный twig умеет даже сам вычислить разницу между датами, только вот в Drupal функция diff отключена из соображений безопасности.
Первого модуля нет на D8, второй не подходит.
Зато наткнулся на https://www.drupal.org/project/views_simple_math_field - этот модуль позволяет вычесть одну дату из другой и вывести результат в секундах. А как преобразовать секунды в дни? При помощи PHP и MySQL я знаю как это сделать, а как с помощью Views понимаю.
В настройках поля: Rewrite results, Override output, {{(имя_поля|trim/(60*60*24))|round}}
PS Полноценный twig умеет даже сам вычислить разницу между датами, только вот в Drupal функция diff отключена из соображений безопасности.
Добрый день! помогите разобраться с подсчетом дней.
Поставил модуль views_simple_math_field + библиотеку, все работает. Формат Поля даты пробовал разный и короткий и Unix и тд. Считает только год, дни и месяцы не считает.
формула: (@field_datew3 - @field_datew2)
10.08.2021 - 26.02.1999 = 22
1628596800UTCC - 920030400UTCC = 22
Все варианты перепробовал ничего не получается. Как получить результат в дня или в секундах?
к сожалению я настолько не втыкаю. через rewrite- это настаивать .htaccess?
с этими настройками не сталкивался Rewrite results, Override output
там только одна дата {{ (имя_поля|trim/(60*60*24))|round }}
не пойму как я отфильтрую ноды по подсчитанным дням
ogo wrote: не пойму как я отфильтрую ноды по подсчитанным дням
Так по ним ещё и фильтровать надо? Это в корне меняет дело. Для фильтрации средствами Views вычисленное значение должно храниться в базе данных. Возможно, поможет модуль Computed Field, можно просто в hook_presave вычислять и сохранять разницу, но в любом случае нужно писать на PHP. Без программирования не думаю что это можно сделать.
Комментарии
https://www.drupal.org/project/views_calc
https://www.drupal.org/project/views_cumulative_field
Первого модуля нет на D8, второй не подходит.
Зато наткнулся на https://www.drupal.org/project/views_simple_math_field - этот модуль позволяет вычесть одну дату из другой и вывести результат в секундах. А как преобразовать секунды в дни? При помощи PHP и MySQL я знаю как это сделать, а как с помощью Views понимаю.
В настройках поля: Rewrite results, Override output,
{{ (имя_поля|trim/(60*60*24))|round }}
PS Полноценный twig умеет даже сам вычислить разницу между датами, только вот в Drupal функция diff отключена из соображений безопасности.
Добрый день! помогите разобраться с подсчетом дней.
Поставил модуль views_simple_math_field + библиотеку, все работает. Формат Поля даты пробовал разный и короткий и Unix и тд. Считает только год, дни и месяцы не считает.
формула: (@field_datew3 - @field_datew2)
10.08.2021 - 26.02.1999 = 22
1628596800UTCC - 920030400UTCC = 22
Все варианты перепробовал ничего не получается. Как получить результат в дня или в секундах?
1. Снести ненужный модуль views_simple_math_field.
2. Сделать всё на твиге через rewrite как я описал.
к сожалению я настолько не втыкаю. через rewrite- это настаивать .htaccess?
с этими настройками не сталкивался Rewrite results, Override output
там только одна дата {{ (имя_поля|trim/(60*60*24))|round }}
не пойму как я отфильтрую ноды по подсчитанным дням
Так по ним ещё и фильтровать надо? Это в корне меняет дело. Для фильтрации средствами Views вычисленное значение должно храниться в базе данных. Возможно, поможет модуль Computed Field, можно просто в hook_presave вычислять и сохранять разницу, но в любом случае нужно писать на PHP. Без программирования не думаю что это можно сделать.
Делал похожие манипуляции с датами, но без views: https://drupal.ru/node/145483