2016-07-13 40 views
0

Wie kann ich überprüfen, ob ein Datum größer oder kleiner als das angegebene Datum ist, indem Sie Javascript verwenden, indem Sie den Monat und das Jahr nur im Format MMM-YYYY übergeben.Überprüfen, ob ein Datum größer als das angegebene Datum ist

Zum Beispiel:

Lassen Sie den Benutzer Juli von Monat Dropdown auswählt und von Jahren Dropdown-Liste

Jetzt Wie kann ich überprüfen, ob die gewählten Werte sind größer/kleiner als JUN 2016.

Ich habe die Eingabe in Sitzungsvariablen als Sitzung ("Monat"), Sitzung ("Jahr") genommen.

Ich habe das versucht, folgend, aber nichts passiert:

var d1 = new Date('JUN-2016') 
var d2 = new Date(<% =session("month")+"-"+session("yrs") %>)) 
if(d2.getTime() > d2.getTime()) 
{ 
alert('Greater than jun 2016'); 
} 
else 
{ 
alert('Less than jun 2016'); 
} 

ich über diesen Link Compare two dates with JavaScript gegangen bin, aber nicht die Lösung für meinen Zustand finden.

Da diese Anwendung auf VB entwickelt wird, habe ich nicht viel Wissen darüber.

Wie kann ich das beheben?

Bitte vorschlagen

Vielen Dank im Voraus.

+0

Was Sie bisher versucht haben? – niyasc

+0

Bitte fügen Sie etwas Code hinzu, um zu zeigen, was Sie probiert haben und für eine dicker Antwort erlauben – RDardelet

Antwort

0

Try this -

var x = new Date('JUN-2016'); 
var y = new Date('MAY-2016'); 
console.log(+x < +y); 
console.log(+x > +y); 
console.log(+x === +y); 
+0

OK lassen Sie mich dieses –

+0

versuchen Ich habe dieses versucht: var d1 = neues Datum ('JUN-2016'); var d2 = neues Datum (<% = Sitzung ("Monat") + '-' + Sitzung ("Jahr")%>)); if (d2.getTime()> d2.getTime()) { alert ('größer als Juni 2016'); }, aber es ist ein Sytax Fehler, wo ich den Monat und das Jahr verketten, können Sie mir bitte helfen –

+0

Welcher Syntaxfehler? –

0

Sie müssen nur eine einfache Termin vergleichen tun. Bitte lesen Sie mehr über „Datum“ hier: http://www.w3schools.com/js/js_date_methods.asp

Vielleicht könnte dieser Code helfen:

var day = 1; // Since you don't care about the day just use the first day 
var month = session("month"); // Use the number of the month instead of the name 
var year = session("yrs"); 
var dateJune = Date.parse("2016-07-01"); // June 
var dateInput = Date.parse(year + "-" + month + "-" + day); 
// Compare dates 
if (dateJune > dateInput) { 
    // The input is before june 
} else if (dateJune < dateInput) { 
    // The input is after june 
} else { 
    // It is june 
} 

Sie benötigen ein gültiges Datumsformat der Lage sein, um das Datum zu analysieren. Anstatt "JUN" von Ihrer Auswahlbox zu bekommen, wäre es besser, stattdessen die Nummer des Monats zu erhalten. Ein Auswahlfeld soll wie folgt aussehen:

<select> 
<option value="01">Jan</option> 
<option value="02">Feb</option> 
... 
</select> 

Ist dies nicht eine Option, können Sie eine Funktion verwenden, die für die Anzahl berechnet, wenn Sie dann Zeichenfolge Werte kennen, die Ihr Monat Variable haben könnte:

function (nameOfMonth) { 
    switch (nameOfMonth) { 
    case 'Jan': 
     return "01"; 
    case 'Feb': 
     return "02"; 
    .... 
    } 
} 
+0

Wie die Eingabe das Datum in Mon-JJJJ-Format. Ich habe meine Frage bearbeitet und den Code hinzugefügt, bitte helfen Sie mir :( –

+0

@AlinaAnjum Ich habe meine Antwort bearbeitet. Was Sie brauchen, ist ein gültiges Datumsformat zu parsen, sonst wird es nicht funktionieren. Ich hoffe, das hilft – Kamelkent

0

Zuerst wandeln es bisher Objekt

// convert to a parseable date string: 
    var dateStrA = "28/12/2013 16:20:22".replace(/(\d{2})\/(\d{2})\/(\d{4})/,  "$2/$1/$3"); 
    var dateStrB = "28/12/2013 16:20:11".replace(/(\d{2})\/(\d{2})\/(\d{4})/,  "$2/$1/$3"); 

    // now you can compare them using: 
     new Date(dateStrA) > new Date(dateStrB); 
+0

Wie die Eingabe das Datum in Mon-JJJJ Format.Ich habe meine Frage bearbeitet und den Code hinzugefügt, bitte helfen Sie mir :( –

0
var date1 = Math.ceil(Math.abs(first date)/(1000 * 3600 * 24)); 
var date2 = Math.ceil(Math.abs(second date)/(1000 * 3600 * 24)); 
if(date1 > date2) 
    alert("date1"); 
else 
    alert("date2"); 
+0

Wie die Eingabe das Datum in Mon-JJJJ-Format. Ich habe meine Frage bearbeitet und hinzugefügt Code, bitte hilf mir :( –

+0

versuche diese Funktion getFormattedDate (Eingabe) { var pattern = /(.*?)\/(.*?)$/; var result = input.replace (Muster, Funktion (Match, p1, p2) { var Monate = ['Jan', 'Feb', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Aug', 'Sep', 'Oktober', "Nov", "Dec"]; Rückkehr (p2 <10? 0 + p2: p2) + + + Monate [(p1-1)]; }); Alarm (Ergebnis); } getFormattedDate ("1/2013"); –

Verwandte Themen