Elementor/WordPress表单15:30截止时间的Twig代码调试求助
解决Elementor/WordPress表单预约截止时间的Twig代码问题
问题分析
你原代码的核心问题在于日期修改写法不够严谨,且字符串格式比较存在潜在兼容性问题。直接使用'+1 day'|date('Y-m-d')可能无法基于当前时间准确计算,部分Twig环境下字符串形式的时间比较也可能出现解析异常。
修正后的Twig代码
{% set current_timestamp = 'now'|date('U') %} {% set cutoff_timestamp = 'now'|date('Y-m-d 15:30:00')|date('U') %} {% if current_timestamp > cutoff_timestamp %} {{ 'now'|date_modify('+2 days')|date('Y-m-d') }} {% else %} {{ 'now'|date_modify('+1 day')|date('Y-m-d') }} {% endif %}
代码说明
- 使用
date('U')将时间转换为时间戳(从1970年到当前的秒数),数值对比比字符串对比更精准可靠。 date('Y-m-d 15:30:00')生成当天15:30的完整时间字符串,再转成时间戳作为判断阈值。date_modify('+1 day')/date_modify('+2 days')明确基于当前时间进行日期偏移,避免默认基准时间导致的计算错误。
验证建议
- 分别在15:29和15:31两个时间点测试代码输出,确认是否正确返回次日和后天的日期。
- 确保你的Twig支持插件已启用
date_modify过滤器和U格式的时间输出(主流WordPress表单插件均支持)。
内容的提问来源于stack exchange,提问作者Kylan Groen
相关产品推荐
相关产品推荐

