【问题标题】:Adding Date+Time without 12AM moving to the next day添加日期+时间而不是 12AM 移动到第二天
【发布时间】:2023-01-26 02:01:21
【问题描述】:

我正在使用附件来自动执行时间条目以与日历导入的日期一起使用。条目没有时间,工作人员不会像我一样尝试输入它们。我需要使它们自动化以简化输入程序。

我面临的问题是 Calendar API 需要数据采用 DATE/TIME 格式。为此,我需要使用 =DATE+TIME 公式。当我这样做并且时间到达 12:00AM 时,此后的日期将更改为第二天。

本质上,我需要覆盖使其在午夜出现后进入第二天的逻辑,或者我需要告诉 B-C 列中的函数它永远不会滚动到午夜。我正在尝试考虑一种方法,如果 A 列中的日期更改为新的一天,我可以告诉函数重置时间,如果它没有更改为新的一天,请继续使用现有函数和将之前显示的时间增加 5 分钟。

我很难过,任何帮助将不胜感激。

Here is a sheet to show you the issue

这是我尝试过的公式,它可以解决问题,但不能满足日历 API 要求以在 DATE/TIME 进行格式化。即使使用 importrange 公式将数据移动到单元格格式为 DATE/TIME 的新工作表中,它仍然将其识别为 TEXT,因为这是公式规定的。

=IF(A2<>"",(CONCATENATE(TEXT(A2,"MM/DD/YYYY")&" "&TEXT(B2,"HH:MM:SS"))),"")

我需要它在工作表中工作,并通过 APPScript 使用日历 API 要求导入日历。

【问题讨论】:

    标签: google-apps-script google-sheets google-calendar-api


    【解决方案1】:

    如果我理解正确你的问题,这里有一个自定义 Apps 脚本函数的建议,就像普通的 Google 表格函数一样。

    • 打开 Apps 脚本编辑器并粘贴下面的函数
    • 在电子表格中调用函数rebuildDateTime(COL1, COL2)

    电子表格:

    代码:

    function rebuildDateTime(arg0, arg1) {
    
      var date = new Date(arg0);
      var str = arg1.toString().split(':');
      date.setHours(str[0]);
      date.setMinutes(str[1]);
    
      return date;
    } 
    

    警告 :

    • 您的 COL2(仅包含时间)必须强制为 TEXT FORMAT

    参考 :

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 2018-10-20
      • 2019-01-21
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多