Google 表 TIMESTAMP 脚本格式 时间(含毫秒)和日期(含日和月,不含年)

问题描述 投票:0回答:1

在我的 Google 表格中,我正在使用脚本

function TIMESTAMP() {
var today = new Date();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var date = today.getDate() + '/' + (today.getMonth() + 1) + '/' + today.getFullYear();
var dateTime = time + '-' + date;
var timestamp_format = "dd-MM";
return dateTime;
}

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).setValue(TIMESTAMP());

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 ');
}

这是 Tanaike 给我的,它从 D 列到 E 列中的下拉列表的选择中检索时间和日期。 全年时间和日期

  1. 我希望时间的格式为毫秒,日期的格式不带年份。
  2. 另外,我希望如果它有一位数(例如上午 8 点),则在数字前面有一个前导零。 带毫秒的时间和不带年份的日期
google-apps-script google-sheets timestamp
1个回答
0
投票

从您显示的示例输出情况来看,如下使用

Utilities.formatDate
怎么样?

修改后的脚本1:

这样的话,当你想把值作为字符串值时,修改

TIMESTAMP
怎么样?

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

修改后的脚本2:

如果你想把值作为日期对象,那么修改

onEdit
怎么样?我想这可能和TheMaster的评论是同一个方向。 参考

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 ');
}
  • 在此修改中,未使用
    TIMESTAMP
    。数字格式已更改,日期对象已放入单元格中。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.