我正在制作出勤计划,在找到特定身份证号码的两场比赛后,谷歌表格正在收集,我想确认用户没有意外登录/通过比较两个时间戳的日期并确保它们是相同的。我一直在寻找比较使用unix开始日期的毫秒数的方法,但是没有办法按日期明确地做到这一点。请有人帮忙谢谢
答案 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);
}
这是我的工作表,只有来自链接表的时间戳:
将时间戳转换为单独的日期和时间后,这是我的工作表。
我认为这会为你做到。
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;
}
这是我的首发电子表格。我在末尾添加了一个名为“已完成”的列,以便当此函数再次运行时,它不会将旧数据附加到工作表。
这是运行代码后电子表格的样子。
这些是创建的工作表。
每张纸都有数据。这是2017年8月1日的数据。