0
我環顧四周,但很難理解這個問題。無效日期Google Apps腳本
在我的電子表格中,我有一個包含日期的單元格,如29/02/16 - 06/03/16。
我正在分解這個問題,並將兩個日期設置爲Google Apps腳本中的兩個不同變量。然而,使用此代碼:
var date = new Date("B4");
我收到返回一個無效的日期。有任何想法嗎?
我環顧四周,但很難理解這個問題。無效日期Google Apps腳本
在我的電子表格中,我有一個包含日期的單元格,如29/02/16 - 06/03/16。
我正在分解這個問題,並將兩個日期設置爲Google Apps腳本中的兩個不同變量。然而,使用此代碼:
var date = new Date("B4");
我收到返回一個無效的日期。有任何想法嗎?
字符串「B4」不是日期。如果你想在小區B4的字符串轉換成日期用途:
var iDate = new Date(sheet.getRange("B4").getValue());
這些步驟如下:
Utilities.formatDate()
function getTheDate(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName(name);
var cellValue = sh.getRange("B4").getValue();
//var cellValue = "29/02/16 - 06/03/16"; //For testing purposes
var positionOfSpace = cellValue.indexOf(" ");
var positionOfSecondSpace = cellValue.lastIndexOf(" ");
var firstDate = cellValue.slice(0,positionOfSpace);
var secondDate = cellValue.slice(positionOfSecondSpace + 1);
//Logger.log('firstDate: ' + firstDate);
//Logger.log('secondDate: ' + secondDate);
//Reformat dates to a valid string format
firstDate = firstDate.slice(3,5) + "/" + firstDate.slice(0,2) + "/20" + firstDate.slice(6);
secondDate = secondDate.slice(3,5) + "/" + secondDate.slice(0,2) + "/20" + secondDate.slice(6);
var ssTimeZone = ss.getSpreadsheetTimeZone();
//var scriptTimeZone = Session.getScriptTimeZone();
Logger.log('ssTimeZone: ' + ssTimeZone);
var dateOneAsDate = new Date(firstDate);
var date2_AsDate = new Date(secondDate);
//Logger.log('dateOneAsDate: ' + dateOneAsDate);
//Logger.log('date2_AsDate: ' + date2_AsDate);
var date1_Formated = Utilities.formatDate(dateOneAsDate, scriptTimeZone, "yyyy-MM-dd");
var date2_Formated = Utilities.formatDate(date2_AsDate, scriptTimeZone, "yyyy-MM-dd");
//Logger.log('date1_Formated: ' + date1_Formated);
//Logger.log('date2_Formated: ' + date2_Formated);
};
謝謝。我現在得到的問題是,這是將日期作爲Sun Mar 06 2016 00:00:00 GMT-0000(GMT)返回,我需要它作爲YYYY-MM-DD格式。這可能嗎? – JGA
該變量現在包含日期,而不是字符串。日期可以以各種格式顯示 - 更改相關單元格的顯示格式。 – Taras
謝謝。我如何改變它在調試器中顯示的日期?我將使用日期變量來輸入腳本從外部API中提取數據的URL。 – JGA