Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数据范围中找不到日期_Javascript_Datetime_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 在数据范围中找不到日期

Javascript 在数据范围中找不到日期,javascript,datetime,google-apps-script,google-sheets,Javascript,Datetime,Google Apps Script,Google Sheets,我试图每周发送一封电子邮件,并在电子邮件内容中包含来自工作表的信息。但是,即使我有日期,而且日志显示的文本完全匹配,日期也没有正确搜索 这是一个志愿者可以在表格上签名的每周计划。这是为了提醒任何想要注册的人,并提供如何注册的信息 function sendEmails() { var signupSheet = SpreadsheetApp.getActive().getSheetByName("volunteers"); var upcomingSunday = new Date(Da

我试图每周发送一封电子邮件,并在电子邮件内容中包含来自工作表的信息。但是,即使我有日期,而且日志显示的文本完全匹配,日期也没有正确搜索

这是一个志愿者可以在表格上签名的每周计划。这是为了提醒任何想要注册的人,并提供如何注册的信息

function sendEmails() {
  var signupSheet = SpreadsheetApp.getActive().getSheetByName("volunteers");
  var upcomingSunday = new Date(Date.now() + 5*1000*60*60*24);
  upcomingSunday.setHours(0,0,0,0)
  Logger.log(upcomingSunday);
  var currentWeekRow = findRowByValue(signupSheet,upcomingSunday);
  Logger.log(currentWeekRow);
  if (signupSheet.getRange(currentWeekRow,2).getValues() = ""){
    var chairman = "Chairman";
    }
    else{
    var chairman = "";
  }
}
function findRowByValue(sheet,value){
  var dataRange = sheet.getRange("A1:A");
  var values = dataRange.getValues();
  Logger.log(values);
  Logger.log(value);
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {     
      if (values[i][j] == value) {
        Logger.log(i);
        return i+1;
      }
    }    
   }
  return -1;
}
函数sendEmails(){ var signupSheet=SpreadsheetApp.getActive().getSheetByName(“志愿者”); var upcomingSunday=新日期(Date.now()+5*1000*60*60*24); 即将到来的星期天。设定时间(0,0,0,0) Logger.log(即将到来的星期日); var currentWeekRow=findRowByValue(签名表,周日提交); Logger.log(currentWeekRow); if(signupSheet.getRange(currentWeekRow,2).getValues()=“”){ var主席=“主席”; } 否则{ var主席=”; } } 函数findRowByValue(表,值){ var dataRange=sheet.getRange(“A1:A”); var values=dataRange.getValues(); Logger.log(值); Logger.log(值); 对于(变量i=0;i 我希望findRowByValue函数返回带有upcomingSunday日期的行,但它一直返回-1,这表示它找不到它,但日志显示它在那里。

尝试以下操作:

function sendEmails() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName("volunteers");
  var rg=sh.getDataRange();//This gets the range that has all of the data on the sheet and column one is the date according to your code
  var vA=rg.getValues();//this gets the data 
  var chairman="";
  var nextSunday=getNextSunday();
  for(var i=0;i<vA.length;i++) {//vA[i][0] is column 1
    if(new Date(vA[i][0]).valueOf()==nextSunday.valueOf()) {//compare milliseconds to milliseconds
      if(vA[i][1]=="") {//this is column 2
        chairman="Chairman";
        //not sure what this has to do with send email
        //probably want to break here
        break;
      } 
    }
  }

}

function getNextSunday() {//This finds the next sunday based upon the current date
  var t=new Date();
  while(t.getDay()!=0) {
    t.setDate(t.getDate()+1);
  }
  t.setHours(0,0,0,0);//set time to midnight
  return t;
}
函数sendEmails(){ var ss=SpreadsheetApp.getActive(); var sh=ss.getSheetByName(“志愿者”); var rg=sh.getDataRange();//这将获取包含工作表中所有数据的范围,第1列是代码中的日期 var vA=rg.getValues();//这将获取数据 var主席=”; var nextSunday=getNextSunday();
对于(var i=0;它是
if(signupSheet.getRange(currentWeekRow,2).getValues()=”){
应该是这样的:
if(signupSheet.getRange(currentWeekRow,2.getValue()=”){
也最好是这样做
sheet.getRange(“1,1,sheet.getLastRow(),1”);
而不是这样:`sheet.getRange(“A1:A”);不确定设置主席与发送电子邮件有什么关系。对于(var i=0;i您的范围只有一列宽。再次感谢。这是我第一次用Google Apps脚本做任何事情,所以我还在学习。第二部分应该是识别包含日期值的行。也许这是因为查找不正确。我尝试搜索了几个地方,以找到可以工作的代码。请看否我在回答中添加了tes。我的代码读取页面上的所有数据,并在第1列中搜索下一个星期天,vA[I][0]在我的代码中。我只是认为同时获取Column 1数据和Column 2数据会更容易。感谢您的快速响应。主席只是此代码中显示的6个几乎相同角色中的1个。他们都填写在电子表格中,我希望看到他们何时为空,如果是,请将他们包含在电子邮件中。如果他们不是空的,请恩,我需要说的是,这个角色仍然是需要的。我在你上面的代码中没有看到它如何确定包含主席信息的单元格的单元格值。这确实是我的代码遇到问题的地方,因为日期在数据中无法识别,所以该行通过-1而不是正确的行。谢谢!评论真的很有用帮了忙。我的代码现在运行得很好。