比较电子表格上的日期时遇到问题

问题描述 投票:0回答:2

我有一个带有单元格的电子表格,其中包含今天的公式和我使用脚本设置的另一个公式:setValue()

然后在我的脚本中,我将比较这些单元格以捕获不匹配的情况。

即使在调试器中,两个单元格都是相等的,但脚本的行为却并非如此!

有什么想法吗?

谢谢!

google-apps-script google-sheets compare
2个回答
0
投票

解决方案:

首先,您需要将值转换为

Date
对象:

var date1 = new Date(dat1);
var date2 = new Date(dat2);

并且

getTime()
是一个方法,因此你需要一个空参数 () 才能正确解释。

所以在你的代码中它将是:

if (date1.getTime() != date2.getTime()) {
// do something
}

示例代码:

function dateCompare() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");
  var range1 = sheet.getRange("A1");
  var cell1 = range1.getValue();
  var range2 = sheet.getRange("A2");
  var cell2 = range2.getValue();

  var date1 = new Date(cell1);
  var date2 = new Date(cell2);

  if (date1.getTime() != date2.getTime()) {
    console.log("Unequal dates");
    range2.setValue(cell1);
  }
}

更换日期:

enter image description here

控制台日志:

enter image description here

参考:

获取时间()


0
投票

现在可以与 Marios 解决方案配合使用,

getDisplayValue

© www.soinside.com 2019 - 2024. All rights reserved.