5

Ho una colonna Data nel formato 'gg/mm/aaaa' e la colonna Ora nel formato 'HH: MM AM/PM' nel foglio di calcolo dell'app Google. Nello script app, voglio unire questi 2 valori come datetime. Come posso fare questo?Come unire data e ora come data/ora nello script di Google Apps Spreadsheet?

Esempio- data: 13/12/2010, ora: 16:30 Quindi voglio ottenere un valore combinato come '13/12/2010 4:30 PM 'come oggetto datetime.

Ho cercato di analizzare la data e l'ora separatamente utilizzando le funzioni getYear, getDay JS. E ha creato una nuova data utilizzando

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

Ma da qualche tempo motivo '4:30' che viene mostrato come una data strana completo come 30 Nov 1899 10:30. Posso estrarre con precisione anno, giorno e mese ma non ore e minuti.

risposta

3

Ho ottenuto risposta nel thread del forum di Google Apps in this.

"In primo luogo, non c'è alcuna differenza tra la data e l'ora (oltre la formattazione), sono tutti oggetti Date. Ora per il problema .. Il numero che è il valore della data/ora nel foglio di calcolo, è il numero di giorni trascorsi da "epoca", quindi il "tempo" è in realtà la parte decimale del numero. Se digiti 0 (zero) nel foglio di lavoro e quindi selezioni il formato datetime, vedrai che l'epoca è "12/30/1899 0:00:00 "nel fuso orario corrente del foglio di calcolo, ovvero in fogli di lavoro diversi, configurati con diversi fusi orari, l'epoca potrebbe cambiare. E se si utilizza lo stesso valore numerico in due fogli di calcolo (ad esempio utilizzando ImportRange) il diverso. Un comportamento molto strano per me. Non era sempre così, ma Google sembrava pensare che fosse meglio per l'utente, perché se si cambiano le impostazioni del fuso orario del foglio di calcolo, le date non cambiare visivamente, ad es. se si digita "1/1/10 14:00" nel foglio di calcolo e quindi si modifica il fuso orario in un altro, la data e l'ora non cambieranno. Saranno comunque le 14:00 nel nuovo fuso orario.

Ora, in GAS l'epoca è "1/1/1970 0:00:00 GMT + 0", ora importa il fuso orario. Quindi, l'epoca è diversa e molto probabilmente anche il fuso orario. Ciò rende le date di funzionamento tra GAS e il foglio di calcolo un disastro totale. Per testare l'epoca GAS, eseguire un range.setValue (new Date (0)); "

Problemi correlati