javascript - 在导入到 Apps 脚本之前将 Google 表格日期转换为其数字格式
问题描述
我需要一个脚本,如果它们的时间戳超过了非活动日期,即从今天的日期过去 31 天,它将从 Google 工作表中删除行。我找到了一个可以做到这一点的脚本,并对其进行了一些修改以满足我的需要。它没有用。我花了 30 分钟试图找出什么不起作用,最后通过日志意识到,当 Apps 脚本从工作表中提取日期时,它会提取以下内容:
2020 年 8 月 24 日星期一 06:33:33 GMT+01:00
而不是 Google 表格的日期数字格式。我需要一种方法将该日期转换为数字格式。这是我正在处理的脚本:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RAW - Roll Call');
var values = sheet.getDataRange().getValues();
var today = Date.now()/86400000 + 25569;
var inactivityDate = today-31;
for (var i = values.length - 1; i >= 0; i--) {
if (values[i][0] < inactivityDate) {
sheet.deleteRow(i+1);
}
}
}
解决方案
如果 Google 表格中的 Date 列是 Date 类型,则 getValues() 方法会将列值作为日期对象返回。
function deleteRows() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RAW - Roll Call');
var values = sheet.getDataRange().getValues();
var today = new Date();
var today = Date.now()/86400000 + 25569;
var inactivityDate = today-31;
for (var i = values.length - 1; i >= 0; i--) {
var diffInDays = (today - values[i][0])/(1000*60*60*24);
if (diffInDays < 31) {
sheet.deleteRow(i+1);
}
}
}
推荐阅读
- c# - Selenium Webdriver C# 在 For Loop 陈旧元素引用中的下拉菜单
- azure-devops - 虚拟路径搞乱部署
- javascript - 将数字合并为一个的股票行情
- r - ggplot2 geom_line 具有基础 R 的魔法?
- r - R和SPSS结果之间的不同置信区间
- database - 如何在端到端(e2e)测试中模拟嵌套 typeorm 数据库模块?
- selenium - 如何在 Selenium (NodeJS) 最大化的情况下启动 Chrome 驱动程序?
- vuetify.js - 如何在 vuetify v-checkbox 中处理选中和不确定?
- javascript - SetTimeout 可以执行,但会导致问题
- pandas - 获取数据框中一列的前三个单词并将它们复制到新列中