首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过电子邮件发送时返回空的日期字段(Google电子表格)

通过电子邮件发送时返回空的日期字段(Google电子表格)
EN

Stack Overflow用户
提问于 2018-06-01 20:49:16
回答 1查看 67关注 0票数 0

我让下面的代码运行ok,但当日期字段为空时,我会收到包含01/01/1970的相关字段的电子邮件。如何插入阻止填写这些日期字段的条件?

代码语言:javascript
复制
function sendEmailbyTransporter() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Status de Embarque Integrado");

  // Get your table data
  var startRow = 27;  // First row of data to process
  var numRows = sheet.getLastRow(); // Number of rows to process
  var dataRange = sheet.getRange(startRow, 1, numRows, 12); // Fetch the range including the Minimums
  var data = dataRange.getValues(); // Fetch values for each row in the Range.

  // Loop through the data to build your table
  var message = "<html><body><table style=\"text-align:center\"><tr><th>NF</th><th>CT-E</th><th>Cliente</th><th>Cidade</th><th>UF</th><th> Previsão de Entrega</th><th>Ocorrência</th><th>Detalhe da Ocorr.</th><th>Data da Entrega</th>";
  var sendEmail = false; // If there is content to send, will be set to true
  for (var i = 0; i < data.length; ++i) {
    var rowData = data[i];
    var NF = rowData[0];
    var Email = sheet.getRange("I24:l24").getValue();
    if (NF != "") { //Checks for blank Code. If blank, then skip and don't add to the table.
      var CTE = rowData[1];
      var CTEAsDate = Utilities.formatDate(CTE, "GMT" , "dd/MM/yyyy" );
      var Cliente = rowData[4];
      var Cidade = rowData[5];
      var UF = rowData[6];
      var PrevEntrega = new Date(rowData[7]);
      var PrevEntregaAsDate = Utilities.formatDate(PrevEntrega, "GMT" , "dd/MM/yyyy" );
      var Ocorr1 = rowData[10];
      var Ocorr2 = rowData[11];
      var Entrega = new Date(rowData[12]);
      var EntregaAsDate = Utilities.formatDate(Entrega, "GMT" , "dd/MM/yyyy" );

        message += "<tr><td>"+NF+"</td><td style=\"text-align:left\">"+CTE+"</td><td>"+Cliente+"</td><td>"+Cidade+"</td><td>"+UF + "</td><td>"+PrevEntregaAsDate+"</td><td>"+Ocorr1 + "</td><td>"+Ocorr2 + "</td><td>"+EntregaAsDate + "</td></tr>";
        sendEmail = true; //There is content to send
    }
  }
  message += "</table></body></html>";
    if (sendEmail) {
      var subject = "Status de Embarque da NF " + NF + "!";
      MailApp.sendEmail({
        name: 'XXXl',
        to: Email, 
        subject: subject, 
        htmlBody: message
      });
   }
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-01 20:59:09

如果日期为nullnew Date(null)将返回纪元时间-1/01/1970(计算当前时间)。只有在日期存在的情况下才计算日期。

代码语言:javascript
复制
var EntregaAsDate = "";
if(rowdata[12])
{
    var Entrega = new Date(rowData[12]);
    EntregaAsDate = Utilities.formatDate(Entrega, "GMT" , "dd/MM/yyyy" );
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50643819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档