Utilities.formatDate Il ne renvoie pas un objet date comme new Date() de javascript, par conséquent vous obtenez cette erreur.
Vous pouvez faire quelque chose comme ça pour obtenir votre année et de conserver le format maintenant chaîne
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()
Hope that helps!
Modifier
Utilisation de la fonction ci-dessous:
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
}
Je reçois ce journal
[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
qui, comme vous pouvez le voir conserve la date, l'année et le mois de comme dans la chaîne maintenant définir dans la première ligne du code.
Merci! Mais dans ce cas, je ne peux pas garder mon fuseau horaire. Il prend le fuseau horaire par défaut. Comment puis-je obtenir le jour, le mois et l'année dans mon fuseau horaire? – Jona
Je suis un peu perdu! Le nouvel objet date est créé à l'aide de la variable var maintenant, il conservera donc le jour, le mois et l'année de la chaîne. Vous ne savez pas exactement par défaut le fuseau horaire par défaut! –
C'est vrai !! Merci beaucoup. J'ai utilisé la fonction getDay(), c'est pourquoi je ne pouvais pas obtenir le bon jour. – Jona