Eftersom jag får datum via sex dropdowns ((yy++mm+dd)x2) löser jag det genom att sätta ihop datumet manuellt, och jämför dem.
Så enkelt är det faktiskt!
pa = new Date(form.pa_ar.value, form.pa_man.value-1, form.pa_dag.value);
form.hid_pa.value = form.pa_ar.value + "-" + form.pa_man.value + "-" + form.pa_dag.value;
av = new Date(form.av_ar.value, form.av_man.value-1, form.av_dag.value);
form.hid_av.value = form.av_ar.value + "-" + form.av_man.value + "-" + form.av_dag.value;
if (av < pa){
alert("The removal-date must be after the release-date.");
form.av_dag.focus();
return (false);
}
lägger in det sammansatta datumet i hidden fields för nästa sida
<input type="hidden" name="hid_av" value=""><input type="hidden" name="hid_pa" value="">
Jag ser nu att jag endast svarade på halva frågan, om ens det :OO
Jag har aldrig behövt prova om javascript-Date fixar minskningar eller ökningar på samma enkla sätt som i VB.
Du får troligen räkna om båda datum till millisekunder och sedan kontrollera om den siffran är större/mindre?
Detta svar har faktiskt inget med mitt tidigare svar att göra, förutom < / > :r
Det fjungerar finfint... I IE.
Men i Mozilla fjungerar det inte alls. ;)
Så här ser det ut:
nu = new Date();
dteValidDate = new Date( nu.getYear(), nu.getMonth(), nu.getDate()+8 );
dteThisDate = new Date( 2004, 2, 15 );
if (dteThisDate < dteValidDate) {
// hit ska vi ju komma!
} else {
// men vi hamnar här med geckoläsare!
}
nu = new Date();
dteValidDate = new Date( nu.getYear(), nu.getMonth()+1, nu.getDate()+8 );
dteThisDate = new Date( 2004, 2, 15 );
if (dteThisDate < dteValidDate) {
// hit ska vi ju komma!
} else {
// men vi hamnar här med geckoläsare!
}
Månad ska tydligen plussas på med 1 för att få nuvarande månad, enligt standard. Annars vet jag inte varför det inte fungerar - det följer standard till punkt och pricka.