我正在使用Drupal 8,并试图获取启动一个事件的剩余时间。我有未来的约会。
当我做{{content.field_event_start_date_time }}
时,它输出:
Thu, 05/20/2021 - 12:00 which is my start date of the event
现在,我使用以下代码来计算不起作用的天数差异:
{# endDate and startDate are strings or DateTime objects #}
{% set difference = date({{content.field_event_start_date_time }}).diff(date(startDate)) %}
{% set leftDays = difference.days %}
{% if leftDays == 1 %}
1 day
{% else %}
{{ leftDays }} days
{% endif %}
你知道我还能剩下几天、几小时、几分钟和几秒钟吗?
不要在视图层中包含太多逻辑。这会降低代码的可读性。视图应该主要接收在Drupal的钩子系统中计算的变量。
我建议使用hook_preprocess_HOOK()
,并在那里计算日期。
例如,在您的主题文件中:
function hook_preprocess_YOUR_VIEW_NAME(&$variables) {
$variables['my_date'] = // ... calculate your date
}