【问题标题】: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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多