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

标签 javascript object google-apps-script google-sheets datestamp

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

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

消息变量保存文本和串联变量,并应用 HTML 格式来构造电子邮件。有一部分基于其他一些变量创建有序列表,其中一个是日期,它是从工作表中的列中提取的:

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....";

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

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

我想要更改的是 00:00:00 GMT-0800 (PST),其中的零使用常规时间格式(例如上午 8:00),然后删除之后的所有内容。存储日期的数组将它们格式化为它们在电子邮件中显示的方式,因此这是我准确地告诉代码我想要什么的情况,而不是准确地告诉它我想要什么。我在文档中看到了一个 Utilities.formatDate() 类,但似乎我无法在工作表中将其调用到脚本编辑器中(或者我的做法是错误的。)

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

谢谢!

最佳答案

您可以使用 javascript Date 对象函数从日期字符串中获取时间。 您可以在这里找到更多详细信息: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()

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

关于JavaScript 邮件函数 - 从字符串中删除日期戳部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42031232/

相关文章:

javascript - facebook javascript SDK - 异步加载

jQuery 使用 $.each 迭代对象

javascript - 将转义字符视为单个字符,查找字符串中的字符数

javascript - 如何使用 Google Apps 脚本将特定行从 3 个 Google 电子表格复制到另一个电子表格

google-apps-script - Google API 返回响应 200 空 JSON

javascript - 使用 puppeteer 遍历列表并单击按钮

javascript - 检测构造函数中是否使用了 new 关键字?

javascript - 一个指令上有两个 Controller

java - 在两种不同情况下与对象引用混淆

javascript - jQuery 风格函数默认使用对象