2016-12-24 129 views
0

我想匹配Google表單中相同日期字段的兩種不同響應
對於一個單元格,我通過填充其響應生成的電子表格訪問其值,對於其他我訪問其值從填寫第二個表格
產生的最後一個響應首先通過觀察日誌,它以這種格式在電子表格
「Tue Jan 03 00:00:00 GMT + 05:30 2017」(不含引號)
和其他存儲這種格式的值「2017-01-03」
我想比較這兩個值,我知道如果我訪問第二種形式的電子表格,它將很容易比較,但我可以用這種格式比較它,是否需要訪問其他表單的電子表格?
編輯:我想比較兩個電子表格的細胞,但兩者也有不同的格式
在第二個電子表格格式就像
「星期四2017年3月16日00:00:00 GMT + 0530(IST)」Google電子表格日期時間轉換

回答

1

的值「2017-01-03」是字符串。它沒有關於時區的信息,所以這是你需要知道的東西(從你收集表單的上下文中)。也許是印度時代的亞洲/加爾各答?如果是這樣,我將格式化第一個日期作爲字符串,使用相同的時區,並比較兩者。

var str = "2017-01-03";  // date as string 
var val = range.getValue(); // date as Date object, from spreadsheet 
var val2str = Utilities.formatDate(val, 'Asia/Kolkata', 'yyyy-MM-dd'); // now also a string 
Logger.log(str == val2str); // test equality 

(你也可以測試這樣格式的字符串不平等,str < val2str)。

另一種方法是將第二個字符串解析爲日期對象,但由於Google Apps腳本日期解析器非常挑剔,這稍微複雜一些。

+0

我分開了兩個字符串的空間,並提出了兩個新的字符串形式「2017年3月16日2017」和等同,但上面的一段代碼是美麗的! – AAMBol

+0

當我的腳本運行代碼時,我已經在表單提交上設置了觸發器,但是我看不到結果(這是另一個我在其中存儲查詢結果的新電子表格),但我必須再次手動運行腳本,你能幫我一下嗎? – AAMBol

+0

這意味着當功能被觸發時數據尚未存在於電子表格中。您可以嘗試在從電子表格中提取日期之前添加'SpreadsheetApp.flush();'這應該應用所有待處理的更改。但直接從[event object](https://developers.google.com/apps-script/guides/triggers/events#form-submit)獲取提交的值更加可靠和方便。 – FTP