【问题标题】:JavaScript mail function - strip datestamp portion from stringJavaScript 邮件函数 - 从字符串中删除日期戳部分
【发布时间】:2017-06-21 05:41:31
【问题描述】:

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

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

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

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

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

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

如果我错过了表单中的一个设置,而这只是某个地方的一个复选框,请教育我 :) 如果我可以用代码修复它,我会喜欢一些建议。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    您可以使用 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()
    

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

    【讨论】:

    • 我对 Google 的类库如此着迷,以至于我什至没有想过要检查如何在 vanilla JS 中执行此操作 :) 我会试一试并报告
    • 就是这样,谢谢你把我的头从云端拉出来:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2017-10-07
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多