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)以跳过标题行。看看这是否有帮助?