我的代码中有这一行:
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"
有什么方法可以解决这个问题吗?
提前谢谢!!
答案 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字符串中保留日期,年份和月份。