2017-04-05 1 views
0

J'ai cette ligne dans mon code.google script application Vous ne trouvez pas la fonction getFullYear dans l'objet

var maintenant = Utilities.formatDate (new Date(), SpreadsheetApp.getActive() getSpreadsheetTimeZone(), « d EEE MMM aaaa HH: mm: ss ");

Mais j'ai eu une erreur quand j'ai essayé d'obtenir l'année à partir de maintenant.

var yearnow = now.getFullYear();

L'erreur est: « TypeError: Impossible de trouver la fonction getFullYear dans l'objet Mer 5 avril 2017 09:56:26 »

Est-il possible de résoudre ce problème?

Merci d'avance !! Utilities.formatDate renvoie une chaîne.

Répondre

1

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.

+0

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

+0

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! –

+0

C'est vrai !! Merci beaucoup. J'ai utilisé la fonction getDay(), c'est pourquoi je ne pouvais pas obtenir le bon jour. – Jona