如果日期相同则运行一个函数

时间:2017-09-29 10:27:32

标签: javascript google-apps-script

我遇到的问题是数组是否被填充。  电子表格29/09/2017中设置了正确的日期 我认为这是因为文本不匹配。请参阅下面的代码:

正在设定日期:

  // Format the date

var formattedDate = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy");

var sendTheseEmail = [];
var sendTheseName = [];
var sendTheseLName = [];
var sendTheseBackup = [];
var sendTheseAdvocate = [];


for (var i = 1; i < 20; i++) {
function findSend() {
  if(tsSheet.getRange("F" + i).getValue() == formattedDate){
   sendTheseEmail.push(tsSheet.getRange("D" + i).getValue())
   sendTheseName.push(tsSheet.getRange("A" + i).getValue())
   sendTheseLName.push(tsSheet.getRange("B" + i).getValue())
   sendTheseBackup.push(tsSheet.getRange("E" + i).getValue())
   sendTheseAdvocate.push(tsSheet.getRange("G" + i).getValue())

日志显示:

日期

[17-09-29 03:05:31:426 PDT] 29/09/2017

然后数组记录:

[17-09-29 03:05:31:427 PDT] []
[17-09-29 03:05:31:427 PDT] []
[17-09-29 03:05:31:428 PDT] []
[17-09-29 03:05:31:428 PDT] []
[17-09-29 03:05:31:429 PDT] []

如果有人能提供帮助那就太好了!

2 个答案:

答案 0 :(得分:1)

如果没有任何最小的可运行代码,很难回答,但我想如果你想比较日期,那么只需使用Utilities.formatDate来格式化该单元格中的日期:

&#13;
&#13;
var formattedDate = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy");
var sendTheseEmail = [];
var sendTheseName = [];
var sendTheseLName = [];
var sendTheseBackup = [];
var sendTheseAdvocate = [];


for (var i = 1; i < 20; i++) {
  function findSend() {
    // Format the cell value before comparision
    if (Utilities.formatDate(new Date(tsSheet.getRange("F" + i).getValue()), "GMT", "dd/MM/yyyy") == formattedDate) {
      sendTheseEmail.push(tsSheet.getRange("D" + i).getValue())
      sendTheseName.push(tsSheet.getRange("A" + i).getValue())
      sendTheseLName.push(tsSheet.getRange("B" + i).getValue())
      sendTheseBackup.push(tsSheet.getRange("E" + i).getValue())
      sendTheseAdvocate.push(tsSheet.getRange("G" + i).getValue())
    }
  }
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

是的,您需要完全匹配日期,因为它们被评估为字符串。