Google 比较日期的脚本
Google Scripts comparing dates
我正在尝试运行一个脚本,该脚本接受单元格的日期,将其与今天进行比较,如果相差 4 天则运行。我不确定如何使 if 语句起作用。目前它会发送电子邮件,但不会检查声明是否正确。我不确定如何将它合并到 sheet.
到目前为止,看看我的代码,
var checkStatus = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Responses").getRange("K:K");
var status = checkStatus.getValue();*
var formattedDate = Utilities.formatDate(new Date(), "GMT-4", "MM-dd-yyyy");
if(status != "closed" && "NEED THIS TO BE DATE OF ENTRY" > (today+4)'{*
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getRange("A1");
var emailAddress = emailRange.getValue();
var message = 'It looks like there is a ticket that has not yet been closed in your sheet. Please check the sheet and ensure all customers are taken care of!'
var subject = 'Tech Support Ticket Over-Due';
MailApp.sendEmail(emailAddress, subject, message);
}
}
基本上,如果 A 列中的任何日期早于 4 天并且在 L 列中不带有“已关闭”状态,我希望它给我发电子邮件。
计算提交日期和今天之间的天数,然后检查它是否大于 4。
Here's 如何计算日差的示例。 (为简化起见,我删除了 UTC 调整。请阅读该答案的评论,看看什么对您的场景有意义。)
function daysBetween(startDate, endDate) {
var millisecondsPerDay = 24 * 60 * 60 * 1000;
return (endDate - startDate) / millisecondsPerDay;
}
因此,要遍历回复并向那些未“关闭”且提交时间超过 4 天的回复发送电子邮件,您可以这样做:
function doSomething() {
var responses = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Responses").getDataRange().getValues();
var now = new Date();
for (var i = 0; i < responses.length; i++) {
var response = responses[i];
var submittedAt = response[0]; // Column A
var status = response[10]; // Column K
var daysSinceSubmission = daysBetween(submittedAt, now);
if (status != "closed" && daysSinceSubmission > 4) {
// Send email
}
}
}
我正在尝试运行一个脚本,该脚本接受单元格的日期,将其与今天进行比较,如果相差 4 天则运行。我不确定如何使 if 语句起作用。目前它会发送电子邮件,但不会检查声明是否正确。我不确定如何将它合并到 sheet.
到目前为止,看看我的代码,
var checkStatus = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Responses").getRange("K:K");
var status = checkStatus.getValue();*
var formattedDate = Utilities.formatDate(new Date(), "GMT-4", "MM-dd-yyyy");
if(status != "closed" && "NEED THIS TO BE DATE OF ENTRY" > (today+4)'{*
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getRange("A1");
var emailAddress = emailRange.getValue();
var message = 'It looks like there is a ticket that has not yet been closed in your sheet. Please check the sheet and ensure all customers are taken care of!'
var subject = 'Tech Support Ticket Over-Due';
MailApp.sendEmail(emailAddress, subject, message);
}
}
基本上,如果 A 列中的任何日期早于 4 天并且在 L 列中不带有“已关闭”状态,我希望它给我发电子邮件。
计算提交日期和今天之间的天数,然后检查它是否大于 4。
Here's 如何计算日差的示例。 (为简化起见,我删除了 UTC 调整。请阅读该答案的评论,看看什么对您的场景有意义。)
function daysBetween(startDate, endDate) {
var millisecondsPerDay = 24 * 60 * 60 * 1000;
return (endDate - startDate) / millisecondsPerDay;
}
因此,要遍历回复并向那些未“关闭”且提交时间超过 4 天的回复发送电子邮件,您可以这样做:
function doSomething() {
var responses = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Responses").getDataRange().getValues();
var now = new Date();
for (var i = 0; i < responses.length; i++) {
var response = responses[i];
var submittedAt = response[0]; // Column A
var status = response[10]; // Column K
var daysSinceSubmission = daysBetween(submittedAt, now);
if (status != "closed" && daysSinceSubmission > 4) {
// Send email
}
}
}