比较谷歌应用程序脚本中的特定日期

时间:2017-08-02 23:28:10

标签: google-apps-script google-apps

我正在制作出勤计划,在找到特定身份证号码的两场比赛后,谷歌表格正在收集,我想确认用户没有意外登录/通过比较两个时间戳的日期并确保它们是相同的。我一直在寻找比较使用unix开始日期的毫秒数的方法,但是没有办法按日期明确地做到这一点。请有人帮忙谢谢

1 个答案:

答案 0 :(得分:1)

如果您想比较时间戳的日期和时间的假期,您可以使用类似的东西来生成日期或仅生成时间。

function messinWithTime()
{
  var ss=SpreadsheetApp.getActive();
  var sht=ss.getActiveSheet();
  var rng=sht.getDataRange();
  var rngA=rng.getValues();
  for(var i=1;i<rngA.length;i++)
  {
    rngA[i][1]=Utilities.formatDate(new Date(rngA[i][0]), Session.getScriptTimeZone(), "MM/dd/yy");
    rngA[i][2]=Utilities.formatDate(new Date(rngA[i][0]), Session.getScriptTimeZone(), "HH:mm:ss");
  }
  rng.setValues(rngA);
}

这是我的工作表,只有来自链接表的时间戳:

enter image description here

将时间戳转换为单独的日期和时间后,这是我的工作表。

enter image description here

将数据附加到每日工作表

我认为这会为你做到。

Code.gs:

function movinToDailySheets()
{
  var ss=SpreadsheetApp.getActive();
  var sh0=ss.getSheetByName('Responses');
  var rg0=sh0.getDataRange();
  var rg0A=rg0.getValues();
  for(var i=0;i<rg0A.length;i++)
  {
    if(!rg0A[i][4])
    {
      var destSheet=Utilities.formatDate(new Date(rg0A[i][0]), Session.getScriptTimeZone(), "MMM dd, yyyy");
      if(!isSheet(destSheet) )
      {
        var destSht=ss.insertSheet(destSheet);
      }
      destSht.appendRow(rg0A[i]);
      sh0.getRange(i+1,5).setValue('Done');
    }
  }
}

function isSheet(name)
{
  var ss=SpreadsheetApp.getActive();
  var allsheets=ss.getSheets();
  var r=false; 
  for(var i=0;i<allsheets.length;i++)
  {
    if(name==allsheets[i].getName())
    {
      r=true;
      break;
    }
  }
  return r;
}

这是我的首发电子表格。我在末尾添加了一个名为“已完成”的列,以便当此函数再次运行时,它不会将旧数据附加到工作表。

enter image description here

这是运行代码后电子表格的样子。

enter image description here

这些是创建的工作表。

enter image description here

每张纸都有数据。这是2017年8月1日的数据。

enter image description here

相关问题