Ich bin auf der Suche nach einer Möglichkeit, die richtige Subtraktion zwischen zwei Javascript-Date-Objekte zu tun und den Tag Delta zu bekommen.Javascript Datum Subtraktion
Das ist mein Ansatz aber es funktioniert nicht für heutige Datum als Eingabe:
<script type="text/javascript">
function getDayDelta(incomingYear,incomingMonth,incomingDay){
var incomingDate = new Date(incomingYear,incomingMonth,incomingDay);
var today = new Date();
var delta = incomingDate - today;
var resultDate = new Date(delta);
return resultDate.getDate();
}
//works for the future dates:
alert(getDayDelta(2009,9,10));
alert(getDayDelta(2009,8,19));
//fails for the today as input, as expected 0 delta,instead gives 31:
alert(getDayDelta(2009,8,18));
</script>
Was würde dies eine bessere Lösung sein?
danke für das Update, aber das scheint zu scheitern bei: getDayDelta (2009,8,19); // sollte 1 zurückgeben, gibt aber 0 zurück (es ist 18. bei meiner lokalen Zeit) – Hellnar
Ja, das liegt daran, dass 'today' die Zeit enthält, siehe meine Bearbeitung ... – CMS
@Crib: Das Problem ist, dass 'incomingDate' einen Zeitanteil von 0 Stunden, 0 Minuten, 0 Sekunden und 0 Millisekunden. Sie müssen das Gleiche mit "heute" machen, oder Sie werden partielle Tage für einen Tag im Voraus/zurück bekommen. Ich habe die Antwort bearbeitet, um die Änderung widerzuspiegeln. –