将日期转换为数字格式谷歌应用程序脚本

Nab*_*335 1 google-apps-script

我想将像这样的日期转换为数字格式,但我在谷歌应用程序脚本中找不到任何方法来执行此操作例如我的“L2”单元格中有一个日期,所以我得到这样的值:

date = active_sheet.getRange("L2").getValue()
Run Code Online (Sandbox Code Playgroud)

如何将日期变量转换为数字格式(整数)?例如,今天的日期以数字格式表示为 44 000

提前致谢

Tan*_*ike 7

我相信您想使用 Google Apps 脚本将日期对象或日期字符串转换为序列号。

从“我认为这是一个日期对象但我不确定”来看,我认为可以考虑两种模式。

模式一:

在此模式中,假设 的值date = active_sheet.getRange("L2").getValue()是日期对象。示例脚本如下。

var active_sheet = SpreadsheetApp.getActiveSheet();
var date = active_sheet.getRange("L2").getValue();
var serialNumber = (new Date(date.getTime() - (1000 * 60 * date.getTimezoneOffset())).getTime() / 1000 / 86400) + 25569; // Reference: https://stackoverflow.com/a/6154953
console.log(serialNumber);
Run Code Online (Sandbox Code Playgroud)

模式2:

在此模式中,假设 的值date = active_sheet.getRange("L2").getValue()是类似 的字符串值dd/mm/yyyy。示例脚本如下。

var active_sheet = SpreadsheetApp.getActiveSheet();
var date = active_sheet.getRange("L2").getValue(); // or getDisplayValue()
var [d, m, y] = date.split("/");
var dateObj = new Date(y, m - 1, d);
var serialNumber = (new Date(dateObj.getTime() - (1000 * 60 * dateObj.getTimezoneOffset())).getTime() / 1000 / 86400) + 25569; // Reference: https://stackoverflow.com/a/6154953
console.log(serialNumber);
Run Code Online (Sandbox Code Playgroud)

测试:

21/04/2022对于上述两个脚本,当使用 的样本值时,44672都会返回 。