2016-07-31 6 views
0

Ich habe einige numerische Felder in meinen Blättern, die als Dauer formatiert sind (wodurch sie als Bruchteile eines Tages behandelt werden). Wenn ich sie in Formeln verwende, werden sie korrekt als Zahlen behandelt.Google Spreadsheet Script - Datum als Nummer

Ich muss sie auch in einem Skript verwenden, das ihre Summe berechnet. Im Skript erscheinen sie jedoch als Date-Objekte. Gibt es eine Möglichkeit, sie dazu zu zwingen, als Zahlen aufzutauchen? Wenn nicht, wie konvertiere ich ein Date korrekt in eine Zahl? Die Verwendung von getUTCHours/getUTCMinutes/getUTCSeconds funktioniert fast, aber es Stunden auf 24 verkürzt, und verliert Genauigkeit (auch wenn ich Millisekunden verwenden, obwohl der Verlust kleiner ist). Die Date-Objekte scheinen Jahr = 1899 zu haben, was besonders merkwürdig ist.

Zur Zeit ließ ich mich auf, aber ich bin mir nicht sicher, ob es zuverlässig genug ist (die lange Zahl ist getTime für null):

if (val instanceof Date) { 
    return (val.getTime() + 2209161600000)/24/3600/1000; 
    } 
+0

Zu wissen, was das Endformat, in dem die Daten sein sollen, und was Sie danach mit ihnen machen, würde helfen. –

Antwort

0

Versuchen Funktion cell.getDisplayValue() verwenden. 00' , und dann können Sie

nutzen und Pluszeichen diese in entsprechende Zahlen konvertieren: Es wird Zeit formatiert Zelle in Text, wie '13 konvertieren var cell = sheet.getRange(myRange); var strDisplay = cell.getDisplayValue(); var numVal = + strDisplay.substring(0, 2);

Verwandte Themen