Drupal视图全局文本中Twig的date_modify函数失效问题
解决Drupal视图Twig日期修改的DateMalformedStringException错误
问题根源
你的mydate变量并非纯日期字符串,而是混入了主题调试或自定义模板输出的HTML注释内容,导致date_modify过滤器无法正确解析时间格式。
解决方案
1. 先剥离HTML内容再处理日期
用Twig的strip_tags过滤器移除所有HTML标签及注释,提取纯日期字符串后再执行修改:
{{ mydate|strip_tags|date_modify('+7 day')|date('d-m-y h:i:s') }}
注意:原代码日期格式中的h:m:s有误,分钟应使用i而非m(m代表月份),修正后避免格式解析错误。
2. 直接调用字段原始值(更可靠)
不要使用渲染后的日期输出,直接引用字段的原始值:
- 假设日期字段的机器名为
field_event_date,在视图全局文本中可以这样写:
{{ content.field_event_date.0.value|date_modify('+7 day')|date('d-m-y h:i:s') }}
或者在视图字段设置里,将日期字段的输出格式改为「原始值」,再在全局文本中引用该字段的变量(如{{ field_event_date }})进行日期修改。
3. 临时关闭主题调试(排查用)
如果是主题调试注释导致的问题,可临时在settings.php中关闭调试:
$config['system.theme']['debug'] = FALSE;
此方法仅用于排查,建议优先使用前两种方案从根源解决问题,避免依赖调试状态。
内容的提问来源于stack exchange,提问作者Jim D
相关产品推荐
相关产品推荐

