首页 > 解决方案 > 获取剩余天数、小时数、分钟数和秒数

问题描述

我正在使用 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 %}

任何想法我怎样才能得到天,小时,分钟和秒?

标签: phpnode.jstwigdrupal-8

解决方案


不要在视图层中包含太多逻辑。它使代码的可读性降低。视图应该主要接收在 Drupal 的钩子系统中计算的变量。

我建议使用hook_preprocess_HOOK(), 并在那里计算日期。

例如,在您的主题文件中:

function hook_preprocess_YOUR_VIEW_NAME(&$variables) {
  $variables['my_date'] = // ... calculate your date
}

推荐阅读