2014-04-14 56 views
0

我想記錄應用程序腳本在電子表格中運行的時間。這段時間將被電子表格中的其他公式使用,以計算從現在到上次運行應用程序腳本的時間。如何在應用程序腳本中複製now()電子表格功能

電子表格中的公式使用NOW()函數,該函數返回自從30/12/1899以來的十進制數。此時代的時區取決於表格的時區,請參閱18596933

我需要使用App Script將當前時間插入到電子表格單元格中,使用與NOW()相同的格式。我一直試圖使用Javascript日期來做到這一點,但這些日期是基於應用程序時區,這可能不同於電子表格。

如何創建NOW()的應用程序腳本版本,該版本與NOW()返回的值相同,無論電子表格或腳本時區差異如何?

回答

0

我的解決方法不會像NOW()那樣返回具有小數部分的天數。相反,它返回一個字符串,該應用程序腳本似乎在包含NOW()的公式中正確處理。

function getSpreadsheetTime() { 
    var spreadsheetTimeZone = SpreadsheetApp.getActive().getSpreadsheetTimeZone(); 
    var spreadsheetDateTime = Utilities.formatDate(new Date(), spreadsheetTimeZone, "dd/MM/yyyy' 'HH:mm:ss.S"); 

    return spreadsheetDateTime; 
} 

這是基於答案:Google Apps Script formatDate using user's time zone instead of GMT

+0

注意,在谷歌表的較新版本的Google Apps腳本函數的結果可以被緩存,所以它不會總是可預測的方式更新。 –

+0

有沒有辦法強制應用程序腳本函數結果更新? – Daniel

相關問題