【问题标题】:How to construct time based if statements in Google Apps Script如何在 Google Apps 脚本中构建基于时间的 if 语句
【发布时间】:2021-09-28 00:37:20
【问题描述】:
我正在尝试为每天特定时间(下午 2 点)之前在我的电子表格中发生的事件构建一些简单的逻辑。我希望函数告诉我在这种情况下由变量“tradeTime”表示的输入日期是在 CT 下午 2 点之前还是之后。无论我提供什么样本数据,if 语句总是返回“交易时间不少于下午 2 点”
【问题讨论】:
-
我认为Utilities.formatDate() 返回字符串值。 Ref 在您的脚本中,比较了 2 个字符串值。我认为这就是你的问题的原因。所以,为了比较时间,我认为这个线程可能有用。 stackoverflow.com/q/19004950 如果这没有用,我很抱歉。如果这有用,我想将您的问题标记为重复问题。
-
-
标签:
google-apps-script
google-sheets
【解决方案1】:
您当前正在将字符串相互比较,这不是您真正想要做的。使用 Date 对象上的 valueOf() 函数可以轻松地将时间或日期转换为数字,有关详细信息,请参阅参考资料。
因此我提出以下建议:
function isEventBeforeDeadline(){
const eventTime = new Date(2021,2,2,14).valueOf()
const deadline = new Date(2021,2,2,14).valueOf()
if( eventTime > deadline ) console.log("Too late")
if( eventTime < deadline ) console.log("Made it")
if( eventTime == deadline ) console.log("Perfect")
}
另请参阅您帖子中的 cmets。
-
更具体地说明这些日期的来源,例如来自工作表、API 或其他地方。我们假设您不会每天手动输入日期。
-
不要发布代码的图像,发布代码的代码。请参阅here > 代码语法高亮
-
您可能需要构建一个自动运行的触发器。然后代码需要修改检查今天的日期,我假设。 Here are the docs 。
参考
- Date Object
- Date.valueOf()