Javascript 删除电子表格中今天之前的日期';s日期应用程序脚本

Javascript 删除电子表格中今天之前的日期';s日期应用程序脚本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我需要删除日期早于今天的行 我有这样的想法: var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var data = sheet.getDataRange().getValues(); var today = new Date(); var date = Utilities.formatDate(new Date(today), "GMT", "yyyy-MM-dd HH:mm:ss

我需要删除日期早于今天的行

我有这样的想法:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var data = sheet.getDataRange().getValues(); 

var today = new Date();
var date = Utilities.formatDate(new Date(today), "GMT", "yyyy-MM-dd HH:mm:ss");
// logs date 2013-06-12 19:23:53

for(n=1;n<data.length;++n){
  var start = data[n][0];
  //logs start  Wed Jul 10 19:00:00 GMT-07:00 2013
}
Wed Jul 10 19:00:00 GMT-07:00 2013
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
var data=sheet.getDataRange().getValues();
var today=新日期();
var date=Utilities.formatDate(新日期(今天),“GMT”,“yyyy-MM-dd HH:MM:ss”);
//日志日期2013-06-12 19:23:53

对于(n=1;n您没有显示任何数据,所以我猜是有点

电子表格中日志的日期格式如下所示:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var data = sheet.getDataRange().getValues(); 

var today = new Date();
var date = Utilities.formatDate(new Date(today), "GMT", "yyyy-MM-dd HH:mm:ss");
// logs date 2013-06-12 19:23:53

for(n=1;n<data.length;++n){
  var start = data[n][0];
  //logs start  Wed Jul 10 19:00:00 GMT-07:00 2013
}
Wed Jul 10 19:00:00 GMT-07:00 2013
Google电子表格不会自动将该格式识别为日期。但是,创建javascript日期对象是可以的,因此我们可以进行比较,如:

new Date("Wed Jul 10 19:00:00 GMT-07:00 2013")
您已经开始在数组中获取电子表格数据,这很好-它很快,我们可以在一个步骤中写出最终数据。要从数组中删除行,请使用该方法。下面是生成的脚本:

function killOldLogs() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var data = sheet.getDataRange().getValues(); 

  var today = new Date();

  // Loop over whole range, removing rows that are too old.
  // Leaves row 0, assuming it's a header row.
  for(n=data.length-1;n>0;--n){
    if (new Date(data[n][0]) < today) {
      data.splice(n,1);
    }
  }
  sheet.clearContents(); // Get rid of old contents, then write new
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
函数killOldLogs(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
var data=sheet.getDataRange().getValues();
var today=新日期();
//循环整个范围,删除太旧的行。
//保留第0行,假设它是标题行。
对于(n=数据长度-1;n>0;--n){
if(新日期(数据[n][0])<今天){
数据拼接(n,1);
}
}
sheet.clearContents();//删除旧内容,然后编写新内容
sheet.getRange(1,1,data.length,数据[0].length).setValues(数据);
}

您没有显示任何数据,所以我有点猜测

电子表格中日志的日期格式如下所示:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var data = sheet.getDataRange().getValues(); 

var today = new Date();
var date = Utilities.formatDate(new Date(today), "GMT", "yyyy-MM-dd HH:mm:ss");
// logs date 2013-06-12 19:23:53

for(n=1;n<data.length;++n){
  var start = data[n][0];
  //logs start  Wed Jul 10 19:00:00 GMT-07:00 2013
}
Wed Jul 10 19:00:00 GMT-07:00 2013
Google电子表格不会自动将该格式识别为日期。但是,创建javascript日期对象是可以的,因此我们可以进行比较,如:

new Date("Wed Jul 10 19:00:00 GMT-07:00 2013")
您已经开始在数组中获取电子表格数据,这很好-它很快,我们可以在一个步骤中写出最终数据。要从数组中删除行,请使用该方法。下面是生成的脚本:

function killOldLogs() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var data = sheet.getDataRange().getValues(); 

  var today = new Date();

  // Loop over whole range, removing rows that are too old.
  // Leaves row 0, assuming it's a header row.
  for(n=data.length-1;n>0;--n){
    if (new Date(data[n][0]) < today) {
      data.splice(n,1);
    }
  }
  sheet.clearContents(); // Get rid of old contents, then write new
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
函数killOldLogs(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
var data=sheet.getDataRange().getValues();
var today=新日期();
//循环整个范围,删除太旧的行。
//保留第0行,假设它是标题行。
对于(n=数据长度-1;n>0;--n){
if(新日期(数据[n][0])<今天){
数据拼接(n,1);
}
}
sheet.clearContents();//删除旧内容,然后编写新内容
sheet.getRange(1,1,data.length,数据[0].length).setValues(数据);
}