谷歌应用程序脚本无法在对象中找到函数getFullYear

时间:2017-04-05 01:03:49

标签: google-apps-script spreadsheet google-sheets-api

我的代码中有这一行:

var now = Utilities.formatDate(new Date(),SpreadsheetApp.getActive()。getSpreadsheetTimeZone()," EEE MMM d yyyy HH:mm:ss");

但是当我试图从现在开始获得这一年时,我得到了错误。

var yearnow = now.getFullYear();

错误是:" TypeError:无法在对象中找到函数getFullYear Wed Apr 5 2017 09:56:26"

有什么方法可以解决这个问题吗?

提前谢谢!!

1 个答案:

答案 0 :(得分: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

您可以看到,在代码的第一行中设置的now字符串中保留日期,年份和月份。