如何在Google Apps Script中获取前一天日期用于生成邮件主题?
解决方法
你需要先基于当前日期计算得到前一天的日期对象,再按原有格式进行格式化即可,Date对象自带的setDate()方法会自动处理跨月、跨年的边界情况,不需要手动处理月份/年份的换算逻辑。
核心日期获取代码修改
把原来的单行日期获取代码替换为以下内容:
// 获取当前日期 const currentDate = new Date(); // 构造前一天的日期对象 const yesterday = new Date(currentDate); yesterday.setDate(currentDate.getDate() - 1); // 格式化前一天的日期 var formattedYesterday = Utilities.formatDate(yesterday, Session.getScriptTimeZone(), "dd-MMMM");
完整修改后的业务代码
已同步调整主题为你要求的拼接格式:
function sendFormEmail() { var toEmailAddress = "1@mailinator.com"; // 计算并格式化前一天日期 const currentDate = new Date(); const yesterday = new Date(currentDate); yesterday.setDate(currentDate.getDate() - 1); const formattedYesterday = Utilities.formatDate(yesterday, Session.getScriptTimeZone(), "dd-MMMM"); var htmlMessage = HtmlService.createHtmlOutputFromFile("Habit tracker form.html").getContent(); // 拼接要求的邮件主题 var subject = `Your daily habit tracker ${formattedYesterday}`; var message = "Some message"; Logger.log(formattedYesterday); // 取消注释即可发送邮件 // MailApp.sendEmail(toEmailAddress, subject, message, { // name: 'Future Mac', // htmlBody: htmlMessage // }); }
内容的提问来源于stack exchange,提问作者Mac Smac
相关产品推荐
相关产品推荐

