我創建了一個Google工作表,通過一列來保存工作任務列表,以跟蹤創建項目的日期,並構建了一個腳本來自動填充該列中的單元格與當天的日期,當一個新行是插入。爲什麼在Google表單中的日期驗證在上午8:00之前拒絕今天的日期?
是腳本的目標使用下面的驗證公式,以確保當用戶更改日期,他們使用的既不是週末也不是在未來日期的單元格(如G9):
=and(isdate(G9), weekday(G9,2)<6, G9<=today())
它只能工作,但只有腳本運行在上午8:00之後的任何時候!如果我早些時候嘗試使用它,單元驗證會拒絕輸入!
腳本看起來像這樣(curRow是一個已經添加的行數):
// Adds today's date without using =today()
var myrangename = "G"+curRow;
var dateCell = sheet.getRange(myrangename);
var d = new Date();
var dateArr = [];
dateArr[0]=d.getFullYear();
dateArr[1]=d.getMonth() + 1; //Months are zero based
dateArr[2]=d.getDate();
dateCell.setValue(dateArr.join('/'));
(注:我不能用簡單地把=today()
單元格中的腳本,因爲所有的條目會改變每天)。
爲什麼只在上午8:00之後才工作?谷歌以某種方式運行在與我的電腦不同的時區?我在英國,所以使用BST
,但這不應該是一個問題,不應該... ...?
這個腳本的輸出是什麼,沒有驗證+在8AM之前輸入公式'= today()'? – Aprillion
Aprillion,看起來你的直覺很好地爲你服務。在上午8:00之前,刪除單元格驗證後腳本的輸出是「20/05/2015」。而今天()的輸出是「19/05/2015」!我已經通過在另一個單元格中輸入= now()作爲公式來證實這一點,並且確實顯示了它應該在8小時後面的日期和時間,現在8小時將其返回到昨天。所以這意味着我的Google表單的「內部時鐘」以某種方式運行了8小時!爲什麼?? – alfavictor
也許有關於谷歌帳戶/谷歌文件和/或谷歌有關時區需要更新的設置?你應該可以談談谷歌的支持,我猜 – Aprillion