JavaScript 邮件函数 - 从字符串中去除日期戳部分

JavaScript mail function - strip datestamp portion from string

我正在使用 Google 应用程序脚本,并且有一个工作功能可以根据自定义菜单发送电子邮件。发送它们的函数使用 getRowsData() 函数将所有列收集为对象,将这些对象连接成字符串,然后通过 htmlBody 参数发送它们,如下所示:

MailApp.sendEmail({
  to: recipient,
  subject: emailSubject,
  htmlBody: message,
});

message 变量包含文本和串联变量,HTML 格式应用于构建电子邮件。有一部分根据其他一些变量创建一个有序列表,其中一个是日期,它是从 sheet:

中的一列中提取的
var message = "Other stuff here....Then"+
"<ol>"+
  "<li>"+desc+"</li>"+
  "<li>"+actions+"</li>"+
  "<li>"+datesPer+"</li>"+
  "<li><strong>Additional notes:</strong>"+actionNotes+"</li>"+
"</ol>"+
"More stuff below....";

发送电子邮件时,datesPer 变量会在实际日期之后打印出一堆其他字符。我假设这是因为附加到 sheet 的表单正在插入日期戳:

3. Date: Tue Nov 08 2016 00:00:00 GMT-0800 (PST)

00:00:00 GMT-0800 (PST) 是我想要更改的内容,零使用常规时间格式(例如上午 8:00),之后的所有内容都被删除。存储日期的数组按照它们在电子邮件中出现的方式格式化它们,所以这是我告诉代码我想要什么,而不是告诉它我想要什么的情况。我在文档中看到 Utilities.formatDate() class,但我似乎无法在 sheets 中将其调用到脚本编辑器中(或者我做错了.)

如果我遗漏了表单中的设置,而这只是某处的一个复选框,请教我 :) 如果我可以用代码修复它,我希望得到一些建议。

谢谢!

您可以使用 javascript 日期对象函数从日期字符串中获取时间。 您可以在此处找到更多详细信息:http://www.w3schools.com/js/js_date_methods.asp

你的脚本应该有这样一行:

datesPer = "Date:" + TimeArray[0]

您可以像这样使用数组中的值创建一个新的 Date 对象来修改日期

var dateFromSheet = new Date (TimeArray[0])
var day = dateFromSheet.getDay() //(Returns 0- Sunday, 6 - Saturday)
var time = dateFromSheet.getHour() + ":" + dateFormSheet.getMinutes()

您可以根据自己的喜好对您从上面获得的值进行格式化,并将其传递给 datesPer 变量。