You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal 10中如何用计算Twig字段计算两个日期字段的差值?

Drupal 10 Webforms 日期字段差值计算方案

直接用{{ date1 - date2 }}返回0的原因是:Webform的日期字段值默认是字符串格式,Twig无法直接对字符串执行减法运算,会被错误转换为数值导致结果异常。

以下是两种可行的解决方法:

方法1:通过时间戳计算天数差

在计算Twig字段中使用以下代码(替换date_start和date_end为你的日期字段机器名):

{% if date_start and date_end %}
  {% set start_ts = date(date_start).timestamp %}
  {% set end_ts = date(date_end).timestamp %}
  {{ (end_ts - start_ts) // 86400 }}
{% else %}
  请填写完整日期
{% endif %}
  • 逻辑:用date()过滤器将日期字符串转为DateTime对象,提取Unix时间戳(秒数),差值除以一天的秒数(86400),通过整数除法得到天数差。
  • 优势:能处理跨年份、月份的日期计算,结果为正/负数可区分日期先后。

方法2:使用DateTime对象的diff方法

更直观的方式是利用Twig的日期对象方法:

{% if date_start and date_end %}
  {% set date_diff = date(date_end).diff(date(date_start)) %}
  {{ date_diff.days }}
{% else %}
  请填写完整日期
{% endif %}
  • 逻辑:diff()方法返回包含日期差信息的对象,直接取days属性即可得到天数差。
  • 注意:如果结束日期早于开始日期,days会返回负数,可根据需求添加绝对值处理{{ date_diff.days|abs }}。

内容的提问来源于stack exchange,提问作者T126TR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:42:12