2017-04-05 77 views
0

我此行我的代碼:谷歌應用程序的腳本無法找到功能和getFullYear的對象

變種現在= Utilities.formatDate(新的Date(),SpreadsheetApp.getActive()getSpreadsheetTimeZone(),「EEE MMM d yyyy HH:mm:ss「);

但是當我試圖從現在開始獲得年份時,我得到了錯誤。

var yearnow = now.getFullYear();

的錯誤是:「類型錯誤:無法找到的功能和getFullYear的對象星期三2017年4月5日九時56分26秒」

有什麼辦法解決這一問題?

預先感謝您!

回答

1

Utilities.formatDate返回一個字符串。它不會像JavaScript的新Date()那樣返回日期對象,因此你會得到這個錯誤。

你可以做這樣的事情讓你的一年,並保留您的格式字符串現在

var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss"); 
var dt = new Date(now) // This not the same as new Date() 
var year = dt.getFullYear() 

希望幫助!

編輯

使用下面的功能:

function getDate(){ 
var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss"); 
var dt = new Date(now) 
Logger.log(now) 
Logger.log(dt.getFullYear()) 
Logger.log(dt.getDate()) 
Logger.log(dt.getMonth() + 1) //add 1 to compensate for the month index starting at 0, i.e Jan = 0, Feb =1, March = 2.... Dec = 11 
} 

我得到這個日誌

[17-04-04 20:35:03:355 CDT] Tue Apr 4 2017 20:35:03 
[17-04-04 20:35:03:355 CDT] 2017.0 
[17-04-04 20:35:03:356 CDT] 4.0 
[17-04-04 20:35:03:356 CDT] 4.0 

正如你可以看到保留日期,年份和月份從作爲現在字符串設置在代碼的第一行。

+0

謝謝!但在這種情況下,我無法保留我的時區。它採用默認時區。我如何在我的時區獲得日,月和年? – Jona

+0

我有點失落!新的日期對象現在使用var創建,所以它現在將保留字符串的日期,月份和年份。不知道它如何默認爲默認時區! –

+0

這是正確的!萬分感謝。我使用getDay()函數,這就是爲什麼我無法獲得正確的一天。 – Jona

相關問題