[javascript] Google-Tabellendatum in ein JS-Date-Objekt konvertieren?



Answers

So konvertieren Sie ein Google-Tabellendatum in ein JavaScript-Datum:

var JSdate = Date.parse(Cell.getValue())

So konvertieren Sie ein JavaScript-Datum in ein Google-Spreadsheet-Datum:

function GoogleDate( JSdate ) { 
   var D = new Date(JSdate) ;
   var Null = new Date(Date.UTC(1899,11,30,0,0,0,0)) ; // the starting value for Google
   return ((D.getTime()  - Null.getTime())/60000 - D.getTimezoneOffset()) / 1440 ;
}
Question

Ich habe mich hier im Kreis bewegt ... Ich habe eine Tabelle, die zwei Daten enthält, und ich muss die Anzahl der verstrichenen Jahre zwischen den beiden finden (dh jemandes Alter zu einem bestimmten Zeitpunkt; das ist ein Ersatz für Excel DATEDIF).

Der erste Schritt besteht darin, die Google-Seriennummer in ein JS-Date-Objekt umzuwandeln, aber es scheint kein Date-Konstruktor zu geben, der dies tut. Irgendwelche Ideen?

Vielen Dank.




Nach einigen Experimenten stellte sich heraus, dass es einfach funktioniert, was eine Überraschung war. new Date(cell) scheint die Seriennummer intern in eine Zeichenfolge umzuwandeln, die ausreicht, um das Datumsobjekt zu erstellen. Vollständige Antwort:

function datedif(first, second, format) {
  var e1  = new Date(first);
  var e2  = new Date(second);
  var age = e2.getFullYear() - e1.getFullYear();
  if(
      (e2.getMonth() <  e1.getMonth()) || 
     ((e2.getMonth() == e1.getMonth()) && (e2.getDate() < e1.getDate())))
    age--;
  return age;
}





Links