Javascript 在不带时区的应用程序脚本中获取dat列
我试图将日期输入到应用程序脚本中,但最终,它得到了一个带有时间和时区的日期,我真的不想这样做。 这是我的代码Javascript 在不带时区的应用程序脚本中获取dat列,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我试图将日期输入到应用程序脚本中,但最终,它得到了一个带有时间和时区的日期,我真的不想这样做。 这是我的代码 function sendMail(){ var first = 0; var order = 1; var date = 2; var item = 3; var email = 4; var pesa = 5; var aliases = GmailApp.getAliases(); var emailTemp = HtmlService.createTemplateFromFil
function sendMail(){
var first = 0;
var order = 1;
var date = 2;
var item = 3;
var email = 4;
var pesa = 5;
var aliases = GmailApp.getAliases();
var emailTemp = HtmlService.createTemplateFromFile("email");
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NAJ");
var data = ws.getRange("A2:F" + ws.getLastRow()).getValues();
data.forEach(function(row){
emailTemp.fn = row[first]
emailTemp.oid = row[order]
emailTemp.odate = row[date]
emailTemp.itm = row[item]
emailTemp.amt = row[pesa]
var htmlMessage = emailTemp.evaluate().getContent();
GmailApp.sendEmail(
row[email],
"Your Order Recently Canceled",
"Your email doesn't support HTML",
{'from':aliases[4], name: "My company name", htmlBody: htmlMessage}
);
});
}
这将以下面的格式显示日期
2021年2月25日星期四14:00:00 GMT-0500(东部标准时间)
我只希望是这样
25/01/2021
or
01/25/2021
这是HTML
<p>Hi <?= fn ?>,</p>
<p>I hope you are well. We notices you recently tried to place an order on <a href="www.xyz.com">My Company Name</a>, and it got canceled before completion.</p>
<p>Let me know if you need any assistance with placing an order; I will be delighted to help you.</p>
<p>Below is your canceled order details:</p>
<p><strong>Order# <?= oid ?></strong></p>
<p><strong>Date: <?= odate ?></strong></p>
<p><strong>Item: <?= itm ?></strong></p>
<p><strong>Total Amount: $<?= amt ?></strong></p>
你好
我希望你身体好。我们注意到您最近试图在上下订单,但在完成前被取消
如果您在下订单时需要任何帮助,请告诉我;我很乐意帮助你
以下是您取消订单的详细信息:
订单#
日期:
项目:
总金额:$
非常感谢您提供的任何帮助不清楚您在共享的代码中从何处获得日期,但是您可以使用类中的formatDate()方法根据需要格式化日期 试着这样做:
let formattedDate = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd/MM/yyyy")
Logger.log(formattedDate)
看看这对你有用吗
编辑:以下是完整的代码供您尝试。注意:html主体是在代码内部构造的。不需要单独的HTML文件
函数sendMail(){
让[first,order,date,item,email,pesa,Alias]=[0,1,2,3,4,5,GmailApp.getAlias()]
让数据=SpreadsheetApp.getActive().getSheetByName(“NAJ”).getDataRange().offset(1,0).getValues();
data.forEach(行=>{
让formattedDate=isDate(行[date])?Utilities.formattate(行[date],Session.getScriptTimeZone(),“dd/MM/yyyyy”):“”;
让htmlMessage=getHTMLBody_U4;(行[第一],行[订单],格式化日期,行[项目],行[佩萨])
如果(第行[电子邮件]){
GmailApp.sendEmail(第[email]行),“您最近取消的订单”,“”,
{'from':别名[4],名称:“我的公司名称”,htmlBody:htmlMessage}
);
}
});
}
函数getHTMLBody_u2;(fn、oid、odate、itm、amt){
返回“Hi”+fn+”,'+
“我希望你一切顺利。我们注意到你最近试图订购”+
“在完成之前就被取消了。”+
“如果您在下订单时需要任何帮助,请告诉我;我很乐意帮助您。”+
“以下是您取消订单的详细信息:”+
“订单#”+oid+”'+
“日期:”+odate+”'+
“项目:“+itm+””+
“总额:“+amt+””+
'';
}
函数isDate(d){
return(Object.prototype.toString.call(d)!=“[对象日期]”)?false:(isNaN(d.getTime())?false:true;
}我已经更新了完整的代码。我想把日期放在HTML中。不知道如何将变量放在那里。code.gs中定义的“order”、“item”和“pesa”在哪里?它们来自Google电子表格。更新了我的答案。我还在datarange后添加了偏移量(1,0)以跳过标题行。看看这是否有帮助?