2017-09-12 16 views
0

我有一個腳本在某個規則導致真/假時發送電子郵件通知。適用於日期的Google App腳本功能

第1階段:在我的例子我在尋找一個「任務」之前發送電子郵件2天將要結束

階段2:我想打一個事件在日曆爲「任務」爲一旦它達到那個時間框架。 (這裏我不知道該怎麼辦)

Iv設法使這個代碼,在線上的一些tuts的幫助下,發送電子郵件給我,但這是用數字完成的,我期待使用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") 
 
    
 
    } 
 
    
 
    
 
}

谷歌片 - 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