【发布时间】:2021-08-29 17:27:48
【问题描述】:
我从日期为 calldate = 29/08/2021 09:30:00 的工作表中获取值()
我从表格中得到另外两个日期:fromdt 和 todt
我想检查 calldate 是否在 fromdt 和 todt 之间
我试过了
function onFormSumbit(e) {
//Timestamp 1Name 1From Date 3.From Time 4To Date 5To Time 6Reason
var name = e.source.getActiveSheet().getRange(e.range.rowStart,2).getValue();
var fromdt = e.source.getActiveSheet().getRange(e.range.rowStart,3).getValue();
var fromtime = e.source.getActiveSheet().getRange(e.range.rowStart,4).getValue();
var todt = e.source.getActiveSheet().getRange(e.range.rowStart,5).getValue();
var totime = e.source.getActiveSheet().getRange(e.range.rowStart,6).getValue();
var reason = e.source.getActiveSheet().getRange(e.range.rowStart,7).getValue();
if ( todt=="") {todt=fromdt} ;
if ( fromtime=="") {fromtime=9} ;
if ( totime=="") {totime=19} ;
var empss = SpreadsheetApp.openById("xxx"); // service calls
var sltsht = empss.getSheetByName("Slots");
var vA =sltsht.getDataRange().getValues();//first column is a date with some time
for (k=1;k<vA.length;k++){
if (vA[k][3]==name && vA[k][0].getTime() >= fromdt.getTime() && vA[k][0].getTime() <= todt.getTime()){
//do something
}
}
我只想比较日期。我想忽略时间。
以上代码无法显示匹配记录。
【问题讨论】:
-
你是如何运行这个函数的?还请添加更多详细信息,例如一些示例输入数据和预期结果。
-
您是否尝试过控制台记录 xx.getTime() 之一?或者更好……调试器?
-
你应该学习如何使用事件对象。您不知道如何通过函数调用读取电子表格中的行,因为所有这些值都已经在 e.values 或 e.namedvalues 中
-
如果您希望以数字方式比较它们,请尝试像这样获取它们的值:
let fromdatevvalue = new Date(e.values[2]).valueOf();您可以使用 valueOf() 或 getTime() 以数字方式比较日期。
标签: javascript datetime google-apps-script google-sheets