2013-02-07 117 views
1

我試圖使用Apps腳本比較Google文檔中的兩個日期。我的日期格式爲m/d/yyyy h:mm:ss。我不斷收到一個錯誤,提示「無法在對象2/1/2013 9:42:46找到函數getTime」。我的日期格式化有什麼問題嗎?我已經成功地使用了這個格式爲mm/dd/yyyy的日期,並且不知道爲什麼添加時間戳會有所作爲。任何幫助將不勝感激!無法在對象中找到函數getTime()

for (var i = 0; i < kValues.length; i++) { // repeat loop 
    if (kValues[i][0] == "") {var lastupdate = parseInt(new Date("1/1/1980 00:00:00").getTime()/day); } // if a date doesn't exist, throw it back in the past 
    if (kValues[i][0] != ""){ 
    var lastupdate = parseInt(kValues[i][0].getTime()/day);} // if a date does exist, interpret it. Here's where I'm getting my error. 
    var statusDateChange = parseInt(statusDate[i][0].getTime()/day); // interpret a date from Sheet 2 
    var statusChange = changeStatus[i][0]; //find the new status 
    var currentStatus = status[i][0]; //find the old status 
    var currentOID = oid[i][0]; // set Order ID 
    var changeOID = statusOID[i][0]; // set Order ID in Sheet 2 to compare 
    Logger.log(lastupdate + "<=" + statusDateChange); 
    if (lastupdate <= statusDateChange && currentOID == changeOID && statusChange != currentStatus) {sheet.getRange(i + 2, 8, 1, 1).setValues(statusChange); // if the date in Sheet 1 is less than the date in Sheet 2 and the ID matches, change the status 

    } 
} 

回答

2

在字符串的末尾是否真的有一個點或者是否是一個錯字? 2/1/2013 9:42:46.

這可能是問題,你可以像這樣的測試:

Logger.log(new Date("2/1/2013 9:42:46.")) 
Logger.log(new Date("2/1/2013 9:42:46")) 

回報

Wed Dec 31 16:00:00 PST 1969 
Fri Feb 01 00:42:46 PST 2013 

其中第一值相當於Logger.log(new Date(null))並返回JS REF日期。

+0

我的Google文檔中的字符串末尾沒有點。錯誤消息在其句子結尾處有​​一段時間。我仍然很困惑。我不認爲我做錯了什麼,但我有一個錯誤! – user1786546

+0

您可以使用Logger檢查kValues [I] [0]中的具體值是什麼? –

+1

我想我解決了它。我從其他工作表複製/粘貼日期,由於某些原因,Google Apps不會將它們作爲日期讀取,即使我將它們格式化爲日期。當我刪除每個單元格中的值並手動重寫日期時,該腳本將起作用。不知道爲什麼複製/粘貼不起作用。 – user1786546