My Googleスプレッドシートには、明日の日付と比較しようとしている予定の一覧が表示されています(その前日に通知を送信できます)。私の現在のコードは、スプレッドシートにない特定の日付でtrueを返します。私たちは日曜日に予定がありません。私は土曜日にこれをテストしていますが、依然としていくつかの真の価値を受けています。私はスプレッドシートを徹底的に検索して、予約ミスの可能性を探しましたが、何もありません。しかし、私は4:24:2016の日付(明日)を探すと、4:14:2016の日付で真を返すことに注意しました。私はこの時点でかなり困惑しています。Googleシートの日付をGoogle Appsスクリプトと比較すると不正なブール値が返される
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var apptDates = sheet.getRange(2, 32, sheet.getLastRow() - 1, 1).getValues();
for (var i = 0; i <= apptDates.length; i++) {
var apptDate = new Date(apptDates[i][0]);
apptDate = apptDate.addHours(74);
function dayAway(date, day) {
return new Date(date.getTime() + day * (24 * 3600 * 1000));
}
Logger.log(apptDate >= dayAway(new Date(), 1));
}
}
はutilities.formatDateの一部を取り出してみてください。セルの値を持つ日付objを作成すると、日付を比較するのに十分なはずです。 – Gerneio
@Gerneio私はutilities.formatDateを削除しましたが、現在はfalseを返すようになっています。私は両方の日付の結果を記録したとき、それぞれの日付は矛盾するタイムスタンプを持っていたので、私は時代を経ずにそれをフォーマットしようとしていました。時間を比較することなく日付を比較する方法はありますか? –
どのくらいの矛盾? – Gerneio