5

J'ai une colonne Date au format 'jj/mm/aaaa' et une colonne Heure au format 'HH: MM AM/PM' dans la feuille de calcul Google App. Dans le script de l'application, je veux joindre ces 2 valeurs en tant que datetime. Comment puis-je faire ceci?Comment fusionner la date et l'heure en tant que datetime dans le script Google Apps Spreadsheet?

Exemple- date: 13/12/2010, heure: 16:30 Ensuite, je veux obtenir une valeur combinée comme '13/12/2010 4:30 PM 'comme objet datetime.

J'ai essayé d'analyser la date et l'heure séparément en utilisant les fonctions getYear, getDay JS. Et créé une nouvelle date à l'aide

new Date(year, month, day, hours, minutes) 

Mais depuis quelque temps la raison « 4:30 » est montré comme une date bizarre complet comme le 30 novembre 1899 10h30. Je peux extraire avec précision l'année, le jour et le mois, mais pas les heures et les minutes.

Répondre

3

J'ai obtenu cette réponse dans le fil de discussion Google Apps this.

"D'abord, il n'y a pas de différence entre la date et l'heure (en plus de la mise en forme), ce sont tous des objets Date.Oui au problème .. Le numéro qui est la valeur de la date/heure dans la feuille de calcul est le Si vous tapez 0 (zéro) dans votre feuille de calcul, puis sélectionnez le format datetime, vous verrez que l'heure est "12"./30/1899 0:00:00 "dans le tableur actuel, c'est-à-dire dans différentes feuilles de calcul, configurées avec des fuseaux horaires différents, l'époque peut changer et si vous utilisez la même valeur numérique dans deux feuilles de calcul (par exemple en utilisant ImportRange) Un comportement qui est très étrange pour moi Ce n'était pas toujours comme ça, mais google semblait penser que c'était mieux pour l'utilisateur, parce que si l'on change les paramètres du fuseau horaire de la feuille de calcul, les dates seront ne pas changer visuellement, par ex. Si vous tapez "1/1/10 14:00" dans la feuille de calcul, puis modifiez le fuseau horaire à tout autre, la date/heure ne changera pas. Il sera toujours 14h00 dans le nouveau fuseau horaire.

Maintenant, dans GAS l'époque est "1/1/1970 0:00:00 GMT + 0", maintenant importe le fuseau horaire. Donc, l'époque est différente et très probablement le fuseau horaire aussi. Cela rend les dates d'exploitation entre GAS et la feuille de calcul un désordre total. Pour tester l'époque GAS, faites un range.setValue (new Date (0)); "