Ar kas nors gali pasiūlyti būdą, kaip naudojant "JavaScript" palyginti dviejų datų reikšmes, didesnes nei, mažesnes nei ir ne praeityje? Reikšmės bus gaunamos iš tekstinių langelių.
Date object atliks tai, ko norite - sukurs po vieną kiekvienai datai ir palygins jas naudodamas >
, <
, <=
arba >=
.
Dėl ==
, !=
, ===
ir !==
operatorių reikia naudoti date.getTime()
, pvz.
var d1 = new Date();
var d2 = new Date(d1);
var same = d1.getTime() === d2.getTime();
var notSame = d1.getTime() !== d2.getTime();
kad būtų aišku, tiesiog tikrinti lygybę tiesiogiai su datos objektais neveiks
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)
Siūlau naudoti išskleidžiamąsias eilutes arba panašią ribotą datos įvedimo formą, o ne teksto langelius, kad nepatektumėte į įvesties patvirtinimo pragarą.
koks formatas?
Jei sukonstruosite Javascript Date object, galite tiesiog atimti juos ir gauti milisekundžių skirtumą (red.: arba tiesiog palyginti):
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
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