2017-09-12 17 views
0

特定のルールがtrue/falseになったときに電子メール通知を送信するスクリプトがあります。Google App Scriptの日付機能

フェーズ1:私はように、その「仕事」のためのカレンダーにイベントを作りたい:「タスク」

フェーズ2を終了しようとする前に、私の例では、私は2日間の電子メールを送信するために探していますすぐにその時間枠に達すると同時に。 (ここで私は何をすべきかわからない)

Ivはこのコードをオンラインでいくつかの助けを借りて電子メールを私に送信することができたが、数字を使ってこれを達成したDATESを使用すると、日付の違いによって結果が得られます。どのように私はこれを行うことができますか?

//Script that sends mail to your Gmail if certain amount is greater or less 
 
//than the amount you specify 
 

 
function myFunction() { 
 
    
 
    var app = SpreadsheetApp; 
 
    var ss = app.getActiveSpreadsheet().getActiveSheet(); 
 
    var cell = ss.getRange(2, 1).getValue(); // getRange - Change to your cell 
 
    var cell2 = ss.getRange(2, 2).getValue(); 
 
    
 
    if(cell2-cell< 2){ 
 
    
 
    MailApp.sendEmail("[email protected]", "Hooray", "2 Days left bro") 
 
    
 
    } 
 
    
 
    
 
}

Googleスプレッドシート - SpreadSheet

答えて

1

以下のスクリプトを試してみてください...

function dateDiff() { 
    var app = SpreadsheetApp; 
    var ss = app.getActiveSpreadsheet().getActiveSheet(); 
    var data = ss.getDataRange().getValues();  // getRange - Change to your cell 

    for(var i=1;i<data.length;i++){ //start from 1, in order to skip the header 
    var cell1 = data[i][0]; 
    var cell2 = data[i][1]; 
    cell1.setHours(0,0,0,0); 
    cell2.setHours(0,0,0,0); 

    var timeDiff = Math.abs(cell2.getTime() - cell1.getTime()); 
    var diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)); 

    if(diffDays<=2){ 
     MailApp.sendEmail("[email protected]", "Hooray", "2 Days left bro") 
     } 
    } 
} 
+0

あなたは魔術師の男ですそんなにありがとうありがとう:) 私は考えあなたが今行ったことを私が参照できるかどうか感謝します。これを列/特定の範囲から全長に適用するためには、何をする必要がありますか? – osherez

+1

@osherez、私は範囲を介してループするようにスクリプトを変更しました – Ritz

+0

あなたの助けを借りてありがとうございます私の言葉のない私の友人。私の知る限り、私は大きなテーマを知っていますが、なぜこの行を使ったのですか?それは何が起こるか知っていますが、私はそれを理解できませんでした:( "setHours(0,0,0,0)" "Math.ceil(timeDiff /(1000 * 3600 * 24)" と再び大いに感謝し続けます。 – osherez