2016-08-07 12 views
-2

Ich habe eine Zelle in meiner Google-Tabelle mit dem Wert von 5/31/2016 0:22:38, aber wenn ich ein Skript schrieb, um die Daten zu holen, gibt es 42521.015713761575 zurück. Ich habe einige Codes aus jquery convert number to date? versucht, aber die meisten Rückgaben stammen aus dem Jahr 1970. Wie würde ich in der Lage sein, das Float in das oben angegebene Datum zu formatieren? Danke ... :)Google Apps Script _ Konvertieren Float bis zum Datum

+2

Können Sie bitte Ihre Frage aktualisieren mit deinem Skript? –

+0

Mögliches Duplikat von [So lesen Sie die korrekten Zeitwerte aus Google Spreadsheet] (http://stackoverflow.com/questions/17715841/how-to-read-the-correct-time-values-from-google-spreadsheet) –

Antwort

1

Dies ist offenbar eine Anzahl von Tagen seit dem 30. Dezember 1899, 00:00:00 vergangen.

Sie können es konvertieren zurück zu einem UTC-Datum mit dem folgenden Code (beachten Sie, dass Monate nullbasiert, so = 11. Dezember):

var x = 42521.015713761575; 
 

 
// seconds in day = 24 * 60 * 60 = 86400 
 
var date = new Date(Date.UTC(1899, 11, 30, 0, 0, x * 86400)); 
 

 
console.log(date.toUTCString());

+0

Wed, 01 Jun 2016 16:22:37 GMT ist das Ergebnis von JSFiddle ... näher zu kommen? Vielleicht ein Zeitzonenproblem? :) –

+0

@MansonMamaril Ich habe meinen Code aktualisiert, um ein UTC-Datum zu erstellen, so dass zumindest jeder das gleiche sieht. :-) Ich habe auch den Referenztag (2 Tage vor dem 1. Januar 1900) so aktualisiert, dass er dem erwarteten Ergebnis entspricht. Aber das sieht immer noch sehr hackisch und unzuverlässig aus. Ich würde empfehlen, nach einer dedizierten Methode zu suchen. (Sind Sie sicher, dass Google keine bietet?) – Arnauld

+0

Ich habe versucht, ein Utilities.formatdate mit Tutorials von verschiedenen Stackoverflow, aber sie bieten auch Daten von 1970 ... –