Ich habe zwei Eingabedaten aus der Datumsauswahlsteuerung. Ich habe das Startdatum 2/2/2012 und das Enddatum 2/7/2012 ausgewählt. Ich habe folgenden Code dafür geschrieben.
Ich sollte das Ergebnis 6 bekommen, aber ich bekomme 5.
function SetDays(invoker) {
var start = $find('<%=StartWebDatePicker.ClientID%>').get_value();
var end = $find('<%=EndWebDatePicker.ClientID%>').get_value();
var oneDay=1000 * 60 * 60 * 24;
var difference_ms = Math.abs(end.getTime() - start.getTime())
var diffValue = Math.round(difference_ms / oneDay);
}
Kann mir jemand sagen, wie ich einen genauen Unterschied erzielen kann?
javascript
Vaibhav Deshmukh
quelle
quelle
Antworten:
http://momentjs.com/ oder https://date-fns.org/
Von Moment docs:
oder um den Start einzuschließen:
Beats das manuelle Durchspielen von Zeitstempeln und Zeitzonen.
Abhängig von Ihrem spezifischen Anwendungsfall können Sie entweder
a/b.startOf('day')
und / odera/b.endOf('day')
erzwingen Sie, dass der Diff an den "Enden" inklusiv oder exklusiv ist (wie von @kotpal in den Kommentaren vorgeschlagen).true
ein Gleitkomma - diff zu erhalten , die Sie dannMath.floor
,Math.ceil
oder jeMath.round
nach Bedarf.'seconds'
anstelle von'days'
und dann durch dividiert wird24*60*60
.quelle
Math.abs(a.diff(b, 'days'))+1
startOf
der Moment mutiert. Wenn Sie das nicht wollen, dann tun Sie esa.clone().startOf('day').diff(b.clone().startOf('day'))
.Wenn Sie moment.js verwenden , können Sie dies problemlos tun.
Wenn Sie einen Unterschied zwischen einem bestimmten Datum und dem aktuellen Datum in der Anzahl der Tage feststellen möchten (ohne Berücksichtigung der Uhrzeit), müssen Sie die Uhrzeit wie folgt aus dem Momentobjekt des aktuellen Datums entfernen
Ermittlung des Unterschieds zwischen einem bestimmten Datum und dem aktuellen Datum in Anzahl der Tage
quelle
current.diff(given, 'days')
es also rundet es ab.1
verlorenVersuchen:
quelle
Versuchen Sie dies mit moment.js (es ist ziemlich einfach, Datumsoperationen in Javascript zu berechnen)
firstDate.diff (secondDate, 'days', false); // true | false für Bruchwert
Das Ergebnis gibt Ihnen die Anzahl der Tage in Ganzzahl.
quelle
Sie können auch diesen Code verwenden: moment ("yourDateHere", "YYYY-MM-DD"). FromNow (). Dadurch wird die Differenz zwischen dem heutigen Tag und Ihrem angegebenen Datum berechnet.
quelle
Das funktioniert bei mir:
quelle
Ich habe mit ES.s eine schnell wiederverwendbare Funktion in ES6 erstellt.
quelle
MVC Ich habe zwei Eingabetexte 1: Anzahl der Tage 2: Datums- / Uhrzeitauswahl
javascipt
um die Anzahl aus dem Datumsgebrauch zu berechnen
Um die Anzahl der Tage zwischen zwei Daten zu berechnen, verwenden Sie
Vergessen Sie nicht, http://momentjs.com/ hinzuzufügen.
quelle