Google表格上的日期格式;最后更改脚本

时间:2015-06-16 19:41:13

标签: google-sheets

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

我的代码如下:

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。为什么日期是三位数,这是什么意思?

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

1 个答案:

答案 0 :(得分:1)

用户小写“d”。目前:

"MM/DD/yy

更改为:

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

Capital“D”返回当年已经过的天数。

Date and Time Patterns

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

Google Sheets Events