PDA

Vollständige Version anzeigen : VDOT Javascript Problem mit getHours()


TheRunningNerd
27.02.2014, 14:14
Moin,

habe gerade keine Lust mich in einem Javascript Forum anzumelden, bestimmt weiss jemand hier auch Bescheid.

Will mir in Google Docs eine Function für VDOT erstellen. Geht auch alles, bis auf ein Problem: die Funktion getHours() vom Date Objekt liefert falsche Werte. Wenn ich 00:00:00 als Zeitformat übergebe liefert getHours() 9. Warum, wieso, was mach' ich falsch?

Hier der vollständige Code... (erwartet strecke in Metern und Zeit im Format hh:mm:ss)


function vdot(strecke, zeit_date) {
var zeit = dateToMinutes(zeit_date);
var tempo = strecke/zeit;
var vd = -4.6 + 0.182258*tempo + 0.000104*tempo*tempo;
var vdfrc = 0.8 + 0.1894393 * Math.exp (-0.012778*zeit) + 0.2989558 * Math.exp (-0.1932605*zeit);
return vd/vdfrc;
}

function dateToMinutes(s) {
var d = new Date(s);
var result = d.getHours()*60+d.getMinutes()+d.getSeconds()/60;
return result;
}

leiti
27.02.2014, 14:57
Also wenn ich das so eingebe

<script>
dateToMinutes("Thu Feb 27 2014 00:00:00");

function dateToMinutes(s) {
var d = new Date(s);
var result = d.getHours()*60+d.getMinutes()+d.getSeconds()/60;
alert(result);
return result;
}
</script>

dann gibt die funktion eigentlich "0" zurück

TheRunningNerd
28.02.2014, 09:37
Ja, mit Datum geht's, aber nicht mir nem reinen Zeit Wert. Naja ich habe das jetzt so umgebaut das ich die Zeit als String entgegennehme und splitte, geht auch.

Edith hat mir grad beigebracht, so geht's auch: var d = new Date("January 1, 1970 "+s);

Fall gelöst.