Kann jemand eine Möglichkeit vorschlagen, die Werte von zwei Daten, die größer, kleiner als und nicht in der Vergangenheit sind, mit JavaScript zu vergleichen? Die Werte stammen aus Textfeldern.
Kann jemand eine Möglichkeit vorschlagen, die Werte von zwei Daten, die größer, kleiner als und nicht in der Vergangenheit sind, mit JavaScript zu vergleichen? Die Werte stammen aus Textfeldern.
Antworten:
Das Date - Objekt wird tun , was Sie wollen - Konstrukt eine für jeden Tag, dann vergleichen sie die Verwendung von >
, <
, <=
oder >=
.
Die ==
, !=
, ===
und !==
Betreiber benötigen Sie zu verwenden , date.getTime()
wie in
var d1 = new Date();
var d2 = new Date(d1);
var same = d1.getTime() === d2.getTime();
var notSame = d1.getTime() !== d2.getTime();
Um klar zu sein, funktioniert es nicht, nur direkt mit den Datumsobjekten auf Gleichheit zu prüfen
var d1 = new Date();
var d2 = new Date(d1);
console.log(d1 == d2); // prints false (wrong!)
console.log(d1 === d2); // prints false (wrong!)
console.log(d1 != d2); // prints true (wrong!)
console.log(d1 !== d2); // prints true (wrong!)
console.log(d1.getTime() === d2.getTime()); // prints true (correct)
Ich schlage vor, dass Sie Dropdown-Listen oder eine ähnliche eingeschränkte Form der Datumseingabe anstelle von Textfeldern verwenden, damit Sie sich nicht in der Hölle der Eingabevalidierung befinden.
setHours(0,0,0,0)
diesen Weg zu nennen. Beseitigt die Notwendigkeit für Anrufe setMinutes()
usw. Wird auch schneller ausgeführt.
toString()
Methode an beiden Daten anwenden und dann mit dem ==
Bediener vergleichen ? Scheint viel einfacher als das Zurücksetzen der Zeit und das anschließende Vergleichen. Gibt es dafür Nachteile?
Der einfachste Weg, Daten in Javascript zu vergleichen, besteht darin, sie zuerst in ein Datumsobjekt zu konvertieren und dann diese Datumsobjekte zu vergleichen.
Unten finden Sie ein Objekt mit drei Funktionen:
Daten.Vergleich (a, b)
Gibt eine Nummer zurück:
date.inRange (d, start, end)
Gibt einen Booleschen Wert oder NaN zurück:
date.convert
Wird von den anderen Funktionen verwendet, um ihre Eingabe in ein Datumsobjekt zu konvertieren. Die Eingabe kann sein
.
// Source: http://stackoverflow.com/questions/497790
var dates = {
convert:function(d) {
// Converts the date in d to a date-object. The input can be:
// a date object: returned without modification
// an array : Interpreted as [year,month,day]. NOTE: month is 0-11.
// a number : Interpreted as number of milliseconds
// since 1 Jan 1970 (a timestamp)
// a string : Any format supported by the javascript engine, like
// "YYYY/MM/DD", "MM/DD/YYYY", "Jan 31 2009" etc.
// an object : Interpreted as an object with year, month and date
// attributes. **NOTE** month is 0-11.
return (
d.constructor === Date ? d :
d.constructor === Array ? new Date(d[0],d[1],d[2]) :
d.constructor === Number ? new Date(d) :
d.constructor === String ? new Date(d) :
typeof d === "object" ? new Date(d.year,d.month,d.date) :
NaN
);
},
compare:function(a,b) {
// Compare two dates (could be of any type supported by the convert
// function above) and returns:
// -1 : if a < b
// 0 : if a = b
// 1 : if a > b
// NaN : if a or b is an illegal date
// NOTE: The code inside isFinite does an assignment (=).
return (
isFinite(a=this.convert(a).valueOf()) &&
isFinite(b=this.convert(b).valueOf()) ?
(a>b)-(a<b) :
NaN
);
},
inRange:function(d,start,end) {
// Checks if date in d is between dates in start and end.
// Returns a boolean or NaN:
// true : if d is between start and end (inclusive)
// false : if d is before start or after end
// NaN : if one or more of the dates is illegal.
// NOTE: The code inside isFinite does an assignment (=).
return (
isFinite(d=this.convert(d).valueOf()) &&
isFinite(start=this.convert(start).valueOf()) &&
isFinite(end=this.convert(end).valueOf()) ?
start <= d && d <= end :
NaN
);
}
}
(a > b) - (a < b)
ist nützlich zum Sortieren von
Array.prototype.sort
werden, solange alle Werte gültige Daten sind. Wenn es ungültige Daten geben könnte, empfehle ich die Verwendung vonfunction ( a, b ) { a = a === undefined || a === null : NaN : a.valueOf( a ); b = a === undefined || b === null : NaN : a.valueOf( b ); return isFinite( a ) && isFinite( b ) ? ( a > b ) - ( a < b ) : NaN; }
return a - b
einfacher und ersetzt die gesamte return-Anweisung.
Vergleichen <
und >
wie gewohnt, aber alles, was dazu gehört, =
sollte ein +
Präfix verwenden. Wie so:
var x = new Date('2013-05-23');
var y = new Date('2013-05-23');
// less than, greater than is fine:
x < y; => false
x > y; => false
x === y; => false, oops!
// anything involving '=' should use the '+' prefix
// it will then compare the dates' millisecond values
+x <= +y; => true
+x >= +y; => true
+x === +y; => true
Hoffe das hilft!
x.getTime() === y.getTime()
Methode, sowohl lesbar als auch extrem schnell siehe jsperf
+
Operator versucht, den Ausdruck in eine Zahl umzuwandeln. Date.valueOf()
wird für die Konvertierung verwendet (die das gleiche zurückgibt wie Date.getTime()
.
<
, <=
, >
Und >=
verwendet den gleichen Algorithmus ( abstrakter relationaler Vergleichsalgorithmus ) hinter den Kulissen.
Mit <
<=
>
>=
den Vergleichsoperatoren können JavaScript-Daten verglichen werden:
var d1 = new Date(2013, 0, 1);
var d2 = new Date(2013, 0, 2);
d1 < d2; // true
d1 <= d2; // true
d1 > d2; // false
d1 >= d2; // false
Die Gleichheitsoperatoren ==
!=
===
!==
können jedoch nicht zum Vergleichen (des Werts von) Daten verwendet werden, weil :
- Zwei unterschiedliche Objekte sind weder für strenge noch für abstrakte Vergleiche gleich.
- Ein Ausdruck, der Objekte vergleicht, ist nur wahr, wenn die Operanden auf dasselbe Objekt verweisen.
Sie können den Wert von Daten für die Gleichheit mit einer der folgenden Methoden vergleichen:
var d1 = new Date(2013, 0, 1);
var d2 = new Date(2013, 0, 1);
/*
* note: d1 == d2 returns false as described above
*/
d1.getTime() == d2.getTime(); // true
d1.valueOf() == d2.valueOf(); // true
Number(d1) == Number(d2); // true
+d1 == +d2; // true
Beides Date.getTime()
und Date.valueOf()
geben die Anzahl der Millisekunden seit dem 1. Januar 1970, 00:00 UTC zurück. Sowohl die Number
Funktion als auch der unäre +
Operator rufen die valueOf()
Methoden hinter den Kulissen auf.
Thursday, 10 Aug 2017
ist ein nicht standardmäßiges Format, und verschiedene Browser analysieren es möglicherweise anders oder gar nicht. Siehe Anmerkungen zu Date.parse
.
Die mit Abstand einfachste Methode besteht darin, ein Datum vom anderen zu subtrahieren und das Ergebnis zu vergleichen.
var oDateOne = new Date();
var oDateTwo = new Date();
alert(oDateOne - oDateTwo === 0);
alert(oDateOne - oDateTwo < 0);
alert(oDateOne - oDateTwo > 0);
Das Vergleichen von Daten in JavaScript ist ganz einfach ... JavaScript verfügt über ein integriertes Vergleichssystem für Daten, das den Vergleich so einfach macht ...
Befolgen Sie einfach diese Schritte, um 2 Datumswerte String
zu vergleichen. Sie haben beispielsweise 2 Eingaben, in denen jeweils ein Datumswert enthalten ist, und Sie können sie vergleichen ...
1. Sie haben 2 Zeichenfolgenwerte, die Sie von einer Eingabe erhalten, und Sie möchten sie vergleichen. Diese sind wie folgt:
var date1 = '01/12/2018';
var date2 = '12/12/2018';
2. Sie müssen Date Object
als Datumswerte verglichen werden. Konvertieren Sie sie einfach in ein Datum. Verwenden Sie new Date()
sie zur Vereinfachung der Erklärung nur neu, aber Sie können es tun, wie Sie möchten:
date1 = new Date(date1);
date2 = new Date(date2);
3. Vergleichen Sie sie jetzt einfach mit dem>
<
>=
<=
date1 > date2; //false
date1 < date2; //true
date1 >= date2; //false
date1 <= date2; //true
<
, >
, <=
, >=
) verwendet wird, werden die Date - Objekte zunächst in Unix - Epoche (Sekunden), und es funktioniert gut. Dies kann jedoch zu dem häufigen Fehler führen, date1 == date2
dass tatsächlich ein Fehler eingeführt wird, da nicht der Wert, sondern die Instanzgleichheit überprüft wird. Um dies zu verhindern und die Gleichheit des Datumswerts zu überprüfen, würde dies funktionieren: date1.valueOf() == date2.valueOf()
oder kürzerdate1+0 == date2+0
Note: Parsing of strings with Date.parse is strongly discouraged due to browser differences and inconsistencies.
und Note: Parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies.
Nur Tag vergleichen (Zeitkomponente ignorieren):
Date.prototype.sameDay = function(d) {
return this.getFullYear() === d.getFullYear()
&& this.getDate() === d.getDate()
&& this.getMonth() === d.getMonth();
}
Verwendungszweck:
if(date1.sameDay(date2)) {
// highlight day on calendar or something else clever
}
Welches Format?
Wenn Sie ein Javascript- Datumsobjekt erstellen , können Sie es einfach subtrahieren, um einen Millisekundenunterschied zu erhalten (bearbeiten: oder einfach vergleichen):
js>t1 = new Date()
Thu Jan 29 2009 14:19:28 GMT-0500 (Eastern Standard Time)
js>t2 = new Date()
Thu Jan 29 2009 14:19:31 GMT-0500 (Eastern Standard Time)
js>t2-t1
2672
js>t3 = new Date('2009 Jan 1')
Thu Jan 01 2009 00:00:00 GMT-0500 (Eastern Standard Time)
js>t1-t3
2470768442
js>t1>t3
true
==
oben erwähnte Vergleichsproblem vermeidet .
Sie verwenden diesen Code,
var firstValue = "2012-05-12".split('-');
var secondValue = "2014-07-12".split('-');
var firstDate=new Date();
firstDate.setFullYear(firstValue[0],(firstValue[1] - 1 ),firstValue[2]);
var secondDate=new Date();
secondDate.setFullYear(secondValue[0],(secondValue[1] - 1 ),secondValue[2]);
if (firstDate > secondDate)
{
alert("First Date is greater than Second Date");
}
else
{
alert("Second Date is greater than First Date");
}
Überprüfen Sie auch diesen Link http://www.w3schools.com/js/js_obj_date.asp
KURZE ANTWORT
Hier ist eine Funktion, die {boolean} zurückgibt, wenn die Demo von dateTime> zu dateTime in Aktion ist
var from = '08/19/2013 00:00'
var to = '08/12/2013 00:00 '
function isFromBiggerThanTo(dtmfrom, dtmto){
return new Date(dtmfrom).getTime() >= new Date(dtmto).getTime() ;
}
console.log(isFromBiggerThanTo(from, to)); //true
Erläuterung
var date_one = '2013-07-29 01:50:00',
date_two = '2013-07-29 02:50:00';
//getTime() returns the number of milliseconds since 01.01.1970.
var timeStamp_date_one = new Date(date_one).getTime() ; //1375077000000
console.log(typeof timeStamp_date_one);//number
var timeStamp_date_two = new Date(date_two).getTime() ;//1375080600000
console.log(typeof timeStamp_date_two);//number
Da Sie jetzt beide Datums- und Uhrzeitangaben im Zahlentyp haben, können Sie sie mit beliebigen Vergleichsvorgängen vergleichen
(>, <, = ,! =, == ,! ==,> = AND <=)
Dann
Wenn Sie mit der C#
benutzerdefinierten Zeichenfolge für Datums- und Zeitformat vertraut sind, sollte diese Bibliothek genau dasselbe tun und Ihnen dabei helfen, Datum und Uhrzeit dtmFRM zu formatieren, unabhängig davon, ob Sie eine Datums- / Zeitzeichenfolge oder ein Unix-Format übergeben
Verwendungszweck
var myDateTime = new dtmFRM();
alert(myDateTime.ToString(1375077000000, "MM/dd/yyyy hh:mm:ss ampm"));
//07/29/2013 01:50:00 AM
alert(myDateTime.ToString(1375077000000,"the year is yyyy and the day is dddd"));
//this year is 2013 and the day is Monday
alert(myDateTime.ToString('1/21/2014', "this month is MMMM and the day is dd"));
//this month is january and the day is 21
alle müssen Sie tun , irgendwelches Format in der Bibliothek befriedet ist vorbei js
Datei
Der einfache Weg ist,
var first = '2012-11-21';
var second = '2012-11-03';
if (new Date(first) > new Date(second) {
.....
}
Hinweis - Nur Datum vergleichen Teil:
Wenn wir zwei Daten in Javascript vergleichen. Es werden auch Stunden, Minuten und Sekunden berücksichtigt. Wenn wir also nur das Datum vergleichen müssen, ist dies der Ansatz:
var date1= new Date("01/01/2014").setHours(0,0,0,0);
var date2= new Date("01/01/2014").setHours(0,0,0,0);
Jetzt: if date1.valueOf()> date2.valueOf()
wird wie ein Zauber wirken.
var date = new Date(); // will give you todays date.
// following calls, will let you set new dates.
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
var yesterday = new Date();
yesterday.setDate(...date info here);
if(date>yesterday) // will compare dates
Um den vielen vorhandenen Optionen noch eine weitere Möglichkeit hinzuzufügen, können Sie Folgendes versuchen:
if (date1.valueOf()==date2.valueOf()) .....
... was für mich zu funktionieren scheint. Natürlich müssen Sie sicherstellen, dass beide Daten nicht undefiniert sind ...
if ((date1?date1.valueOf():0)==(date2?date2.valueOf():0) .....
Auf diese Weise können wir sicherstellen, dass ein positiver Vergleich durchgeführt wird, wenn beide ebenfalls undefiniert sind, oder ...
if ((date1?date1.valueOf():0)==(date2?date2.valueOf():-1) .....
... wenn Sie es vorziehen, dass sie nicht gleich sind.
Über Moment.js
Jsfiddle: http://jsfiddle.net/guhokemk/1/
function compare(dateTimeA, dateTimeB) {
var momentA = moment(dateTimeA,"DD/MM/YYYY");
var momentB = moment(dateTimeB,"DD/MM/YYYY");
if (momentA > momentB) return 1;
else if (momentA < momentB) return -1;
else return 0;
}
alert(compare("11/07/2015", "10/07/2015"));
Die Methode gibt 1 zurück, wenn dateTimeA
größer als istdateTimeB
Die Methode gibt 0 zurück, wenn dateTimeA
gleichdateTimeB
Die Methode gibt -1 zurück, wenn sie dateTimeA
kleiner als istdateTimeB
Date
Objekte durchzuführen .
<
oder >
Operatoren, wenn der Moment bereits mit praktischen Vergleichsmethoden wie .isBefore
und .isAfter
Hüten Sie sich vor der Zeitzone
Ein Javascript-Datum kennt keine Zeitzone . Es ist ein Moment in der Zeit (Ticks seit der Epoche) mit praktischen Funktionen zum Übersetzen von und zu Zeichenfolgen in der "lokalen" Zeitzone. Wenn Sie mit Datumsangaben mithilfe von Datumsobjekten arbeiten möchten, wie dies hier jeder tut, möchten Sie, dass Ihre Datumsangaben UTC Mitternacht zu Beginn des betreffenden Datums darstellen. Dies ist eine übliche und notwendige Konvention, mit der Sie unabhängig von der Jahreszeit oder der Zeitzone ihrer Erstellung mit Daten arbeiten können. Sie müssen also sehr wachsam sein, um den Begriff der Zeitzone zu verwalten, insbesondere wenn Sie Ihr Mitternachts-UTC-Datumsobjekt erstellen.
In den meisten Fällen soll Ihr Datum die Zeitzone des Benutzers widerspiegeln. Klicken Sie, wenn heute Ihr Geburtstag ist . Benutzer in Neuseeland und den USA klicken gleichzeitig und erhalten unterschiedliche Daten. In diesem Fall tun Sie dies ...
// create a date (utc midnight) reflecting the value of myDate and the environment's timezone offset.
new Date(Date.UTC(myDate.getFullYear(),myDate.getMonth(), myDate.getDate()));
Manchmal übertrifft die internationale Vergleichbarkeit die lokale Genauigkeit. In diesem Fall tun Sie dies ...
// the date in London of a moment in time. Device timezone is ignored.
new Date(Date.UTC(myDate.getUTCYear(), myDate.getyUTCMonth(), myDate.getUTCDate()));
Jetzt können Sie Ihre Datumsobjekte direkt vergleichen, wie die anderen Antworten vermuten lassen.
Nachdem Sie beim Erstellen darauf geachtet haben, die Zeitzone zu verwalten, müssen Sie auch sicherstellen, dass die Zeitzone beim Konvertieren in eine Zeichenfolgendarstellung nicht angezeigt wird. So können Sie sicher verwenden ...
toISOString()
getUTCxxx()
getTime() //returns a number with no time or timezone.
.toLocaleDateString("fr",{timezone:"UTC"}) // whatever locale you want, but ALWAYS UTC.
Und vermeiden Sie alles andere, besonders ...
getYear()
, getMonth()
,getDate()
Um zwei Daten zu vergleichen, können wir die JavaScript-Bibliothek date.js verwenden, die Sie unter folgender Adresse finden: https://code.google.com/archive/p/datejs/downloads
und verwenden Sie die Date.compare( Date date1, Date date2 )
Methode und es wird eine Zahl zurückgegeben, die das folgende Ergebnis bedeutet:
-1 = Datum1 ist weniger als Datum2.
0 = Werte sind gleich.
1 = Datum1 ist größer als Datum2.
Um Datumsangaben aus freiem Text in Javascript zu erstellen, müssen Sie diese in das Date () -Objekt analysieren.
Sie können Date.parse () verwenden, bei dem Freitext versucht, es in ein neues Datum umzuwandeln. Wenn Sie jedoch die Kontrolle über die Seite haben, würde ich empfehlen, stattdessen HTML-Auswahlfelder oder eine Datumsauswahl wie das YUI-Kalendersteuerelement oder die jQuery-Benutzeroberfläche zu verwenden Datepicker .
Sobald Sie ein Datum haben, auf das andere hingewiesen haben, können Sie die Daten mithilfe einer einfachen Arithmetik subtrahieren und wieder in eine Anzahl von Tagen umwandeln, indem Sie die Anzahl (in Sekunden) durch die Anzahl der Sekunden pro Tag (60 * 60 *) dividieren. 24 = 86400).
var date_today=new Date();
var formated_date = formatDate(date_today);//Calling formatDate Function
var input_date="2015/04/22 11:12 AM";
var currentDateTime = new Date(Date.parse(formated_date));
var inputDateTime = new Date(Date.parse(input_date));
if (inputDateTime <= currentDateTime){
//Do something...
}
function formatDate(date) {
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
hours = hours < 10 ? '0'+hours : hours ;
minutes = minutes < 10 ? '0'+minutes : minutes;
var strTime = hours+":"+minutes+ ' ' + ampm;
return date.getFullYear()+ "/" + ((date.getMonth()+1) < 10 ? "0"+(date.getMonth()+1) :
(date.getMonth()+1) ) + "/" + (date.getDate() < 10 ? "0"+date.getDate() :
date.getDate()) + " " + strTime;
}
Eine verbesserte Version des von "some" geposteten Codes
/* Compare the current date against another date.
*
* @param b {Date} the other date
* @returns -1 : if this < b
* 0 : if this === b
* 1 : if this > b
* NaN : if a or b is an illegal date
*/
Date.prototype.compare = function(b) {
if (b.constructor !== Date) {
throw "invalid_date";
}
return (isFinite(this.valueOf()) && isFinite(b.valueOf()) ?
(this>b)-(this<b) : NaN
);
};
Verwendungszweck:
var a = new Date(2011, 1-1, 1);
var b = new Date(2011, 1-1, 1);
var c = new Date(2011, 1-1, 31);
var d = new Date(2011, 1-1, 31);
assertEquals( 0, a.compare(b));
assertEquals( 0, b.compare(a));
assertEquals(-1, a.compare(c));
assertEquals( 1, c.compare(a));
Wenn Ihr Datumsformat wie folgt lautet, können Sie diesen Code verwenden:
var first = '2012-11-21';
var second = '2012-11-03';
if(parseInt(first.replace(/-/g,""),10) > parseInt(second.replace(/-/g,""),10)){
//...
}
Es wird geprüft, ob die 20121121
Anzahl größer als ist 20121103
oder nicht.
first == second
oder first < second
oder first > second
. Das ist eine der vielen Schönheiten mit ISO8601 im Vergleich zu MM / TT / JJ, TT / MM / JJ, JJ / TT / MM, TT / JJ / MM oder MM / JJ / TT.
Ich speichere normalerweise Dates
wie timestamps(Number)
in Datenbanken.
Wenn ich vergleichen muss, vergleiche ich einfach zwischen diesen Zeitstempeln oder
konvertieren Sie es in Datumsobjekt und vergleichen Sie es > <
gegebenenfalls mit.
Beachten Sie, dass == oder === nur dann ordnungsgemäß funktioniert, wenn Ihre Variablen Referenzen desselben Datumsobjekts sind.
Konvertieren Sie diese Datumsobjekte zuerst in einen Zeitstempel (eine Nummer) und vergleichen Sie dann deren Gleichheit.
var timestamp_1970 = new Date(0).getTime(); // 1970-01-01 00:00:00
var timestamp = new Date().getTime(); // Current Timestamp
var timestamp = 0; // 1970-01-01 00:00:00
var DateObject = new Date(timestamp);
Dates
Versuchen Sie vor dem Vergleichen des Objekts, beide Millisekunden auf Null zu setzen Date.setMilliseconds(0);
.
In einigen Fällen, in denen das Date
Objekt dynamisch in Javascript erstellt wird, Date.getTime()
ändern sich die Millisekunden , wenn Sie das weiter drucken , wodurch die Gleichheit beider Daten verhindert wird.
Heute 2020.02.27 teste ich ausgewählte Lösungen unter Chrome v80.0, Safari v13.0.5 und Firefox 73.0.1 unter MacOs High Sierra v10.13.6
d1==d2
(D) und d1===d2
(E) sind für alle Browser am schnellstengetTime
(A) ist schneller als valueOf
(B) (beide sind mittelschnell)Im Folgenden werden Snippet-Lösungen vorgestellt, die in Leistungstests verwendet werden. Sie können HIER einen Test in Ihrer Maschine durchführen
Ergebnisse für Chrom
d1==d2
oder d1===d2
ist im Kontext der Frage nutzlos.
from_date ='10-07-2012';
to_date = '05-05-2012';
var fromdate = from_date.split('-');
from_date = new Date();
from_date.setFullYear(fromdate[2],fromdate[1]-1,fromdate[0]);
var todate = to_date.split('-');
to_date = new Date();
to_date.setFullYear(todate[2],todate[1]-1,todate[0]);
if (from_date > to_date )
{
alert("Invalid Date Range!\nStart Date cannot be after End Date!")
return false;
}
Verwenden Sie diesen Code, um das Datum mit Javascript zu vergleichen.
Danke D.Jeeva
var curDate=new Date();
var startDate=document.forms[0].m_strStartDate;
var endDate=document.forms[0].m_strEndDate;
var startDateVal=startDate.value.split('-');
var endDateVal=endDate.value.split('-');
var firstDate=new Date();
firstDate.setFullYear(startDateVal[2], (startDateVal[1] - 1), startDateVal[0]);
var secondDate=new Date();
secondDate.setFullYear(endDateVal[2], (endDateVal[1] - 1), endDateVal[0]);
if(firstDate > curDate) {
alert("Start date cannot be greater than current date!");
return false;
}
if (firstDate > secondDate) {
alert("Start date cannot be greater!");
return false;
}
Folgendes habe ich in einem meiner Projekte getan:
function CompareDate(tform){
var startDate = new Date(document.getElementById("START_DATE").value.substring(0,10));
var endDate = new Date(document.getElementById("END_DATE").value.substring(0,10));
if(tform.START_DATE.value!=""){
var estStartDate = tform.START_DATE.value;
//format for Oracle
tform.START_DATE.value = estStartDate + " 00:00:00";
}
if(tform.END_DATE.value!=""){
var estEndDate = tform.END_DATE.value;
//format for Oracle
tform.END_DATE.value = estEndDate + " 00:00:00";
}
if(endDate <= startDate){
alert("End date cannot be smaller than or equal to Start date, please review you selection.");
tform.START_DATE.value = document.getElementById("START_DATE").value.substring(0,10);
tform.END_DATE.value = document.getElementById("END_DATE").value.substring(0,10);
return false;
}
}
Aufruf auf Formular onsubmit. hoffe das hilft.