【发布时间】:2021-10-12 14:04:37
【问题描述】:
我已尝试将明天的日期与通过 Google 表单提交的日期匹配。在记录器中它似乎匹配,但它不会记录 YES 并且不会评估为 true。
我的努力:
function ArchiveTuesdayOrder() {
let dt = new Date();
let t = new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() + 1);//default for items not provided in the constructor is zero
const date = new Date();
date.setDate(date.getDate() + 1);
var tom = Utilities.formatDate(date, "America/New_York", 'EEE MMM dd yyyy HH:mm:ss Z');
var tomDate = Utilities.formatDate(date, "America/New_York", "MM-dd-yyyy");
var sheetActive = SpreadsheetApp.openById("xxxxxxxxxxxxxx");
var sheet = sheetActive.getSheetByName("xxxxxxxxxxxxxx");
//var orderDate = sheet.getRange(2,3,100).getValues();
var orderdateRange = sheet.getRange(2, 4, 100);
var orderDate = orderdateRange.getValues();
Logger.log(tom.substring(0,10))
Logger.log(t);
for (var i = 0; i < orderDate.length; i++) {
Logger.log(orderDate[i])
if (t === orderDate[i]) { // This is what I cant get to evaluate true- No Match
Logger.log("YES"+orderDate)
}}}
【问题讨论】:
-
我认为将日期转换为文本以与另一个日期进行比较不是一个好主意。而是使用 Date.prototype.getTime() 以毫秒为单位获取日期表示并使用它们进行比较。如果您需要进一步的帮助,1. 添加minimal reproducible example,包括示例输入数据和预期结果以及您的搜索工作的简要描述,如How to Ask 中所建议的那样。
标签: javascript datetime google-apps-script google-sheets date-comparison