2791 Stimmen

Zwei Daten mit JavaScript vergleichen

Kann jemand einen Vorschlag machen, wie man die Werte von zwei Daten größer als, kleiner als, und nicht in der Vergangenheit mit JavaScript? Die Werte werden aus Textfeldern stammen.

20 Stimmen

Wenn es um DateTime und Manipulation in JS geht, suche ich nicht weiter als momentjs :)

101 Stimmen

Keine Notwendigkeit, Momentjs zu verwenden, um 2 Daten zu vergleichen. Verwenden Sie einfach reines Javascript's Date Objekt. Prüfen Sie die Hauptantwort für weitere Details.

0 Stimmen

Sie können die folgende Antwort lesen: stackoverflow.com/questions/4812152/ Prüfen Sie getDateDifference und getDifferenceInDays, ob es helfen kann.

0voto

Bachas Punkte 203

Sie können die Daten auf einfachste und verständlichste Weise vergleichen.

<input type="date" id="getdate1" />
<input type="date" id="getdate2" />

Nehmen wir an, Sie haben zwei Datumseingaben, die Sie vergleichen möchten.

schreiben Sie also zunächst eine gemeinsame Methode zum Parsen des Datums.

 <script type="text/javascript">
            function parseDate(input) {
             var datecomp= input.split('.'); //if date format 21.09.2017

              var tparts=timecomp.split(':');//if time also giving
              return new Date(dparts[2], dparts[1]-1, dparts[0], tparts[0], tparts[1]);
// here new date(  year, month, date,)
            }
        </script>

parseDate() ist die gebräuchlichste Methode zum Parsen des Datums. jetzt können Sie Ihr Datum überprüfen =, > ,< jede Art von Vergleich

    <script type="text/javascript">

              $(document).ready(function(){
              //parseDate(pass in this method date);
                    Var Date1=parseDate($("#getdate1").val());
                        Var Date2=parseDate($("#getdate2").val());
               //use any oe < or > or = as per ur requirment 
               if(Date1 = Date2){
         return false;  //or your code {}
}
 });
    </script>

Dieser Code wird Ihnen sicher helfen.

0voto

Aaquib Jawed Punkte 115
function compare_date(date1, date2){
const x = new Date(date1)
const y = new Date(date2)
function checkyear(x, y){
    if(x.getFullYear()>y.getFullYear()){
        return "Date1 > Date2"
    }
    else if(x.getFullYear()<y.getFullYear()){
        return "Date2 > Date1"
    }
    else{
        return checkmonth(x, y)
    }
}
function checkmonth(x, y){
    if(x.getMonth()>y.getFullYear()){
        return "Date1 > Date2"
    }
    else if(x.getMonth()<y.getMonth){
        return "Date2 > Date1"
    }
    else {
        return checkDate(x, y)
    }
}
function checkDate(x, y){
    if(x.getDate()>y.getFullYear()){
        return "Date1 > Date2"
    }
    else if(x.getDate()<y.getDate()){
        return "Date2 > Date1"
    }
    else {
        return checkhour(x,y)
    }
}
function checkhour(x, y){
    if(x.getHours()>y.getHours()){
        return "Date1 > Date2"
    }
    else if(x.getHours()<y.getHours()){
        return "Date2 > Date1"
    }
    else {
        return checkhmin(x,y)
    }
}
function checkhmin(x,y){
    if(x.getMinutes()>y.getMinutes()){
        return "Date1 > Date2"
    }
    else if(x.getMinutes()<y.getMinutes()){
        return "Date2 > Date1"
    }
    else {
        return "Date1 = Date2"
    }
}
return checkyear(x, y)

-1voto

user4439128 Punkte 49

Versuchen Sie dies während des Vergleichs sollte das Datum das Iso-Format "yyyy-MM-dd" haben Wenn Sie nur Datumsangaben vergleichen möchten, verwenden Sie diesen datehelper

<a href="https://plnkr.co/edit/9N8ZcC?p=preview"> Live Demo</a>

-1voto

Obot Ernest Punkte 155
If you are using **REACT OR REACT NATIVE**, use this and it will work (Working like charm)

Wenn die beiden Daten übereinstimmen, wird TRUE zurückgegeben, andernfalls FALSE

const compareDate = (dateVal1, dateVal2) => {
        if (dateVal1.valueOf() === dateVal2.valueOf()){
            return true;
        }
        else { return false;}
    }

0 Stimmen

Ihre Antwort sieht aus wie die Antwort von @Sanjeev Singh, können Sie erklären, worin der Unterschied besteht?

0 Stimmen

Ich habe nicht kopiert und eingefügt. Erinnern Sie sich, dass ich sagte, der Code funktioniert für React und React Native App. Ich habe gerade eine funktionale Komponente erstellt, die die beiden Daten vergleicht und entweder den Wert true oder false zurückgibt.

0 Stimmen

In der Tat gibt es einen großen Unterschied zwischen dem Code von Sanjeev und meinem. Andere schreiben Lösungen für Javascript, während ich mich entschieden habe, für React.js und React Native zu schreiben.

-2voto

iinvole Punkte 1

Versuchen Sie es mit diesem Code

var f =date1.split("/");

var t =date2.split("/");

var x =parseInt(f[2]+f[1]+f[0]);

var y =parseInt(t[2]+t[1]+t[0]);

if(x > y){
    alert("date1 is after date2");
}

else if(x < y){
    alert("date1 is before date2");
}

else{
    alert("both date are same");
}

2 Stimmen

Es gibt absolut keinen Grund, die Zeichenkette bei einem solchen Datum aufzuteilen, wenn man einfach die getMinutes , getSeconds Methoden usw.

2 Stimmen

Warum zur Hölle verliere ich ständig an Ansehen, wenn diese Antwort heruntergestuft wird?

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