将日期转换为数字格式 google 应用脚本
Convert a date to numeric format google app script
我想将这样的日期 dd/mm/yyyy 转换为数字格式,但我在 google 应用脚本中找不到任何方法
例如,我的“L2”单元格中有一个日期,所以我得到这样的值:
date = active_sheet.getRange("L2").getValue()
如何将日期变量转换为数字格式(整数)?例如,今天的数字格式日期类似于 44 000
提前致谢
我相信您想使用 Google Apps 脚本将日期对象或日期字符串转换为序列号。
从“我认为它是一个日期对象但我不确定”,我认为可以考虑2种模式。
模式 1:
在这个模式中,假设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:
console.log(serialNumber);
模式二:
在这个模式中,它假设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:
console.log(serialNumber);
测试:
对于上述两个脚本,当使用样本值21/04/2022
时,返回44672
。
我想将这样的日期 dd/mm/yyyy 转换为数字格式,但我在 google 应用脚本中找不到任何方法 例如,我的“L2”单元格中有一个日期,所以我得到这样的值:
date = active_sheet.getRange("L2").getValue()
如何将日期变量转换为数字格式(整数)?例如,今天的数字格式日期类似于 44 000
提前致谢
我相信您想使用 Google Apps 脚本将日期对象或日期字符串转换为序列号。
从“我认为它是一个日期对象但我不确定”,我认为可以考虑2种模式。
模式 1:
在这个模式中,假设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:
console.log(serialNumber);
模式二:
在这个模式中,它假设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:
console.log(serialNumber);
测试:
对于上述两个脚本,当使用样本值21/04/2022
时,返回44672
。