当前位置: 首页 > 知识库问答 >
问题:

如何获得日期

呼延珂
2023-03-14

谷歌工作表,每个用户有多个子工作表。每个用户都在进行输入,我需要根据数据输入日期/时间计算性能。我使用下面的OneEdit(e)函数,它可以很好地处理1张纸。。。但当我为其他子图纸制作同一脚本的多个副本时。。。它停止工作了。

function onEdit(e) {
  var s = e.source.getActiveSheet(),
      watchcols = [2],
      offsetcols = [-1],
      ind = watchcols.indexOf(e.range.columnStart)
  if (s.getName() !== "Sheet1" || ind === -1) return ;
  e.range.offset(0,offsetcols[ind])
  .setValue(!e.value ? null : Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:SS"))
}

有人能帮我解决这个问题吗?

提前感谢您阅读我的帖子并帮助我!

共有3个答案

潘秦斩
2023-03-14

试试这个:

function onEdit(e) {
  const sh = e.range.getSheet();
  const shts = ['Sheet1',"add others"]
  const idx = shts.indexOf(sh.getName());
  const watchcols = [2];
  const offsetcols = [-1];
  const ind = watchcols.indexOf(e.range.columnStart);
  if (~idx && ~ind) {
    e.range.offset(0,offsetcols[ind]).setValue(!e.value ? null : Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:SS"))
  }
}
古彦
2023-03-14
function onEdit(e) {
  var s = e.source.getActiveSheet(),
      watchcols = [2],
      offsetcols = [-1],
      ind = watchcols.indexOf(e.range.columnStart)
  if (ind === -1) return ;
  if (s.getName() === "Sheet1") {
    e.range.offset(0,offsetcols[ind])
    .setValue(!e.value ? null : Utilities.formatDate(new Date(),Session.getScriptTimeZone(), "MM/dd/yyyy HH:mm:SS"))
  }

  else if (s.getName() === "Sheet2") {
  }

  else if (s.getName() === "Sheet3") {
  }
}
强宾白
2023-03-14

更新-使用实用程序。带有本地时区的formatDate(日期、时区、格式)。从这里查找您的本地时区id

从onEdit()中分离函数怎么样:

function onEdit(e) {
  var s = e.source.getActiveSheet();
  var range = e.range;
  var col = range.getColumn();
    
   if (e.value){
      if (s.getName() === "AAA" && col === 4) { setDateTime(range, -3)};
      if (s.getName() === "BBB" && col === 6) { setDateTime(range, -5)};
      if (s.getName() === "CCC" && col === 10) { setDateTime(range, -6)};   
   }
}
    
    
function setDateTime(range, offsetcols){
  var date =  Utilities.formatDate(new Date(),"America/New_York", "MM/dd/yyyy HH:mm:ss");
  
  Logger.log(date);
       
  range.offset(0,offsetcols).setValue(date);
}
 类似资料:
  • 问题内容: 换句话说,我想要提供Joda-Time的功能: 但没有Joda-Time,只有java.util.Date。 不推荐使用.setHours()等方法。有没有更正确的方法? 问题答案: 由于不推荐使用这些方法,因此您可以使用: 如果最终需要一个对象,只需调用

  • 问题内容: 我应该如何获取应该在31天之前? 问题答案: 只需减去31天。例如: 要 获取 当前日期,可以使用: 要么 或者,您可能想要创建自己的“时钟”表示形式,该表示形式能够为您提供current ,在这种情况下,您将使用: (这使您可以使用依赖项注入使用伪造的时钟编写更简单的单元测试。)

  • 在PHP中通过< code>date('c')很容易获得ISO 8601日期字符串(例如,< code > 2004-02-12t 15:19:21 00:00 ),但是在Objective-C (iPhone)中如何获得它呢?有没有类似的捷径? 这是我发现的很长的路要走: 对于如此核心的东西来说,这似乎是一个非常严格的要求。

  • 我正在寻找如何使用Golang从Kubernetes集群中的一个pod获取日志的解决方案。我查看了“https://github.com/kubernetes/client-go”和“https://godoc.org/sigs.k8s.io/controller-runtime/pkg/client”,但不理解如何将它们用于此目的。在K8S中,除了日志之外,我没有任何问题可以获取pod或任何其他

  • 问题内容: 我想找出以下内容:给定日期(对象),星期几是几号? 例如,星期日是第一天,星期一:第二天..依此类推 然后,如果输入的内容类似于今天的日期。 例 输出可能是6(因为它是星期五) 问题答案: 使用: 从文档中: 以整数返回星期几,其中星期一为0,星期日为6。

  • 问题内容: 继续从Stack Overflow问题Java程序获取没有时间戳的当前日期: 没有时间获取Date对象的最有效方法是什么?除了这两种以外,还有其他方法吗? 更新: 我知道乔达·时代;我只是想避免为这样一个简单的任务增加库(我认为)。但是根据到目前为止的答案,《乔达时报》似乎非常受欢迎,因此我可以考虑一下。 通过高效的,我的意思是我想避免临时对象String的创建13759 method