413 Stimmen

Wie berechnet man die Anzahl der Tage zwischen zwei Daten?

Ich habe zwei Eingabedaten, die vom Date Picker Steuerelement genommen werden. Ich habe Startdatum 2/2/2012 und Enddatum 2/7/2012 ausgewählt. Ich habe folgenden Code für das geschrieben.

Das Ergebnis sollte 6 sein, aber ich erhalte 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 den genauen Unterschied feststellen kann?

5voto

David Punkte 1199

Sie können auch folgenden Code verwenden: moment("IhrDatumHier", "JJJJ-MM-TT").fromNow(). Damit wird die Differenz zwischen dem heutigen Tag und dem von Ihnen angegebenen Datum berechnet.

5voto

Phil Punkte 665

Ich habe eine schnelle wiederverwendbare Funktion in ES6 mit Moment.js erstellt.

const getDaysDiff = (start_date, end_date, date_format = 'YYYY-MM-DD') => {
  const getDateAsArray = (date) => {
    return moment(date.split(/\D+/), date_format);
  }
  return getDateAsArray(end_date).diff(getDateAsArray(start_date), 'days') + 1;
}

console.log(getDaysDiff('2019-10-01', '2019-10-30'));
console.log(getDaysDiff('2019/10/01', '2019/10/30'));
console.log(getDaysDiff('2019.10-01', '2019.10 30'));
console.log(getDaysDiff('2019 10 01', '2019 10 30'));
console.log(getDaysDiff('+++++2019!!/###10/$$01', '2019-10-30'));
console.log(getDaysDiff('2019-10-01-2019', '2019-10-30'));
console.log(getDaysDiff('10-01-2019', '10-30-2019', 'MM-DD-YYYY'));

console.log(getDaysDiff('10-01-2019', '10-30-2019'));
console.log(getDaysDiff('10-01-2019', '2019-10-30', 'MM-DD-YYYY'));

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>

0voto

Moctar Yonli Punkte 39
// today
const date = new Date();

// tomorrow
const nextDay = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);

// Difference in time
const Difference_In_Time = nextDay.getTime() - date.getTime();

// Difference in Days 
const Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X