我有一個包含手動設置日期的單元格。如果這個日期=今天,我想突出顯示整個行。我認爲我的工作很好,但夏令時對我的日期比較已經引發了巨大的衝擊。誰能幫忙?Google Apps腳本 - 如果日期=今天,突出顯示行
現在,如果我的單元格包含「2017/3/15」,腳本會告訴我日期等於「2017/3/14」。我知道因爲DST需要一個小時的時間,但我不知道如何在比較日期的同時對其進行補救。下面的現有代碼。
function highlightRow (selectionRow) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Test Sheet");
var dateToFlag = sheet.getRange(selectionRow,27).getValue();
var today = new Date();
today.setHours(0,0,0,0);
if (dateToFlag !== "" && dateToFlag == today) {
sheet.getRange(selectionRow,1,1,50).setBackgroundColor('yellow');
}
}
我們不知道'sheet.getRange(selectionRow,27)'的值是。添加一個'Logger.log('dateToFlag:'+ dateToFlag)'語句;運行代碼並查看LOGS。然後告訴我們什麼是價值。腳本編輯器有它自己的時區。我並不是說這是解決方案,但是您可以在代碼編輯器中更改時區。另外,這行'today.setHours(0,0,0,0);'是做什麼的?那個有什麼用? –
sheet.getRange(selectionRow,27).getValue()是2017年3月15日 - 手動輸入到我的電子表格中的日期。但是,當我登錄時,它顯示爲3/14/2017 23:00:00。 我調用setHours是爲了設置時間爲00:00:00,所以我只需要擔心的日期匹配,而不是時間。 –
更新:@Sandy我通過Broswer.msgbox輸出日期,他們似乎是相同的,但不會觸發我的if語句來突出顯示行。這是日期如何顯示在msgbox中。 日期= 2017年3月14日00:00:00 GMT-0500(CDT) 今日= 2017年3月14日星期二00:00:00(CDT) –