2016-04-23 7 views
0

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)); 
    } 
} 
+0

はutilities.formatDateの一部を取り出してみてください。セルの値を持つ日付objを作成すると、日付を比較するのに十分なはずです。 – Gerneio

+0

@Gerneio私はutilities.formatDateを削除しましたが、現在はfalseを返すようになっています。私は両方の日付の結果を記録したとき、それぞれの日付は矛盾するタイムスタンプを持っていたので、私は時代を経ずにそれをフォーマットしようとしていました。時間を比較することなく日付を比較する方法はありますか? –

+0

どのくらいの矛盾? – Gerneio

答えて

2

あなたは日、月、年だけでなく、時間分、秒、ミリ秒ないとの完全なJS Date objectを取得new Date()使用しています。

あなたの比較結果が得られなかったのはそのためです。 不要な値を0に設定するだけで問題ありません。私はgetTime()を使用してミリ秒を比較しましたが、toString()も使用できましたが、日付オブジェクトだけが等価性をチェックするのには適していません。

ロガーは、このようなことをデバッグするのに非常に役立ちます。

コード:

function myFunction() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); 
    var apptDates = sheet.getRange(2,6, sheet.getLastRow() - 1, 1).getValues(); 
    for (var i = 0; i < apptDates.length; i++) { 
    var apptDate = new Date(apptDates[i][0]); 
    Logger.log(apptDate.getTime()+' ==? '+dayAway(new Date(new Date().setHours(0,0,0,0)), 1).getTime()); 
    Logger.log(apptDate.getTime() == dayAway(new Date(new Date().setHours(0,0,0,0)), 1).getTime()); 
    } 
} 

function dayAway(date, day) { 
    return new Date(date.getTime() + day * 24 * 3600 * 1000); 
} 

enter image description hereenter image description here

+0

パーフェクト!ありがとうございました! –

関連する問題