代码之家  ›  专栏  ›  技术社区  ›  dek

谷歌工作表TIMESTAMP脚本格式时间(以毫秒计)&日期(以天计)和月份(不以年计)

  •  0
  • dek  · 技术社区  · 1 年前

    在我的谷歌表单中,我使用了一个脚本 TIMESTAMP for function NOW() is updating when I open the Google Sheet to check the file
    是由给我的 Tanaike 其从D列到E列中的下拉列表的选择中检索时间和日期。 capture1

    1. 我希望时间的格式以毫秒为单位,日期不以年为单位。
    2. 此外,如果它有一个个个位数(如上午8点),我希望在数字前面有一个前导零。 capture2
    0 回复  |  直到 1 年前
        1
  •  0
  •   Tanaike    1 年前

    从您展示的示例输出情况来看,如何使用 Utilities.formatDate 如下所示?

    修改的脚本1:

    在这种情况下,当您想将值作为字符串值时,如何修改 TIMESTAMP 如下所示?

    function TIMESTAMP() {
      return Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'HH:mm:ss:SSS" - "dd/MM');
    }
    

    修改的脚本2:

    如果你想把值作为日期对象,修改一下怎么样 onEdit 如下所示?我认为这可能与TheMaster的评论方向相同。 Ref

    function onEdit(e) {
      const excludeSheetNames = ["START", "MASTER"]; // Please set exclude sheet names.
    
      const { range } = e;
      const sheet = range.getSheet();
      if (excludeSheetNames.includes(sheet.getSheetName()) || range.columnStart != 4 || range.rowStart == 1) return;
      range.offset(0, 1).setNumberFormat('HH:mm:ss:SSS" - "dd/MM').setValue(new Date());
    
      if (e.value != "TRUE") return;
      e.source.getActiveSheet().getRange(e.range.rowStart, e.range.columnStart + 1).setValue(new Date()).setNumberFormat('HH:MM:SS - dd/MM ');
    }
    
    • 在该变形例中, 时间戳 未使用。数字格式将被更改,日期对象将被放入单元格中。

    参考文献: