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

如何基于用户配置文件字段在HTML邮件中动态填充日期

简易实现方案

一、推荐:后端模板引擎预计算(最稳定)

邮件客户端普遍对前端JS支持有限,在发送邮件前用模板引擎/后端代码计算好数值再填充是最稳妥的方案,不需要你写复杂的HTML或JS。

1. 计算有效期剩余天数

如果用的是常见邮件模板引擎(如Handlebars、Thymeleaf、Velocity),直接用引擎内置的日期处理函数计算:

  • 先取用户的{{expirationDate}}和当前发送时间,计算毫秒差后转成天数。
  • 示例(Handlebars语法,不同引擎仅函数名略有差异):
    您的有效期还有{{math (subtract expirationDate now) 86400000}}天
    
    注:subtract计算两个日期的毫秒差,math是除以一天的毫秒数(86400000)取整数。

要是模板引擎没有现成函数,直接在后端代码里提前算出剩余天数(存为{{remainingDays}})和14天后的格式化日期(存为{{plus14Days}}),再传入模板,HTML里直接用变量填充:

<p>您的有效期还有{{remainingDays}}天</p>
<p>14天后的日期是{{plus14Days}}</p>

2. 生成当前+14天的格式化日期

同样用模板引擎的日期工具,给当前时间加14天后格式化为xx/xx/xx:

  • 示例(Handlebars):
    14天后的日期是{{dateFormat (addDays now 14) "MM/DD/YY"}}
    
    注:addDays是日期加天数函数,dateFormat用于指定输出格式。

二、备用:前端JS简易实现(仅兼容支持JS的客户端)

如果只能在HTML里处理,可嵌入简单JS,但注意Outlook、Gmail等主流客户端可能禁用JS,仅作备选。

把这段代码放到邮件的<body>中:

<p>您的有效期还有<span id="remainingDays">__</span>天</p>
<p>14天后的日期是<span id="plus14Days">__</span></p>

<script>
// 计算剩余有效期天数
const expireDate = new Date('{{expirationDate}}'); // 模板变量会被替换为用户的日期
const now = new Date();
const timeDiff = expireDate - now;
const remainingDays = Math.max(Math.floor(timeDiff / (1000 * 60 * 60 * 24)), 0); // 避免负数
document.getElementById('remainingDays').textContent = remainingDays;

// 生成当前+14天的格式化日期
const next14Days = new Date(now);
next14Days.setDate(now.getDate() + 14);
// 格式化为xx/xx/xx(月/日/年后两位)
const formatted = `${(next14Days.getMonth()+1).toString().padStart(2,'0')}/${next14Days.getDate().toString().padStart(2,'0')}/${next14Days.getFullYear().toString().slice(-2)}`;
document.getElementById('plus14Days').textContent = formatted;
</script>

补充说明:

  • 确保{{expirationDate}}是JSnew Date()能识别的格式(如YYYY-MM-DD、MM/DD/YYYY)
  • 加个静态兜底提示,避免JS被禁用后显示空白:
    <p>您的有效期还有<span id="remainingDays">__</span>天(若未显示数字,请登录账户查看详情)</p>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:27:23