【问题标题】:Date format on Google Sheets; last change script谷歌表格上的日期格式;最后更改脚本
【发布时间】:2015-06-16 19:41:12
【问题描述】:

我正在创建一个单元格来标记此电子表格“上次更改”的时间。

我的代码如下:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() == 2 ) { //checks the column
    var row = r.getRow();
    if( row == 3 || row == 4) {
      var time = new Date();
      time = Utilities.formatDate(time, "GMT-04:00", "MM/DD/yy, hh:mm:ss");
      SpreadsheetApp.getActiveSheet().getRange('B24').setValue(time);
    };
  };
 };

但是,当它更新它时,它会产生“06/167/15 03:35:50”。这是有道理的,因为当我上次更新它时,它是 2015 年 6 月 16 日下午 3:35:50。为什么日期是三位数,这是什么意思?

另外,我有一个单元格,它是所有数字的“汇总”,它汇总了电子表格中的所有数字。我正在使用这种方法来确定工作表上的任何数字是否已更改,因为如果更改了任何数字,则此“摘要”单元格也将更改。但是,如果我更改任何其他单元格,“摘要”单元格会更改(由于公式),但我的脚本不会更新时间。只有当我主动更改该单元格时,它似乎才会这样做,即。改变公式。有什么办法解决吗?

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    用户小写“d”。目前:

    "MM/DD/yy
    

    改为:

    time = Utilities.formatDate(time, "GMT-04:00", "MM/dd/yy, hh:mm:ss");
    

    大写“D”返回一年中经过的天数。

    Date and Time Patterns

    对于您的其他问题,请尝试使用可安装的更改触发器:

    Google Sheets Events

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多