Date Object, poi puoi anche creare un Oggetto apposito, tipo io ho fatto questo per un periodo di date
codice:
var Period = function(start, end){
if(!start || typeof start != 'object' || !start.getTime){
var e = new Error();
e.message = "The 'start' argument must be a valid Date object";
e.number = 10000001
throw e;
}
if(!end || typeof end != 'object' || !end.getTime){
var e = new Error();
e.message = "The 'end' argument must be a valid Date object";
e.number = 10000002
throw e;
}
this._startDate = start;
this._endDate = end;
}
Period.prototype.inPeriod = function(d){
if(!d || typeof d != 'object' || !d.getTime)
{
var e = new Error();
e.message = "The argument must be a valid Date object";
e.number = 10000003
throw e;
}
return d.getTime() >= this._startDate.getTime() && d.getTime() <= this._endDate.getTime();
}
Period.prototype.setStartDate = function(start){
if(!start || typeof start != 'object' || !start.getTime)
{
var e = new Error();
e.message = "The startDate must be a valid Date object";
e.number = 10000004
throw e;
}
this._startDate = start;
}
/**
* Set the End Date in the Period
* @param {Date} end : the new end Date
*/
Period.prototype.setEndDate = function(end){
if(!end || typeof end != 'object' || !end.getTime)
{
var e = new Error();
e.message = "The endDate must be a valid Date object";
e.number = 10000005
throw e;
}
this._endDate = end;
}
Period.prototype.getStartDate = function(){
return this._startDate;
}
Period.prototype.getEndDate = function(){
return this._endDate;
}
Poi crei N Period per gli intervalli di date:
codice:
var sd, ed;
var rangeDiDate = [];
var index = 0;
//Qui fai il ciclio PHP per generare gli oggetti nel formato
sd = new Date();
sd.setTime(<?=$startDateUnixTimeStamp * 1000?>);
ed = new Date();
ed.setTime(<?=$endDateUnixTimeStamp * 1000?>);
rangeDiDate[index++] = new Period(sd, ed);
//Chiudi il ciclo PHP
Poi ottieni le date dall'utente, le trasformi in Date Object ed usi la funzione inPeriod dell'oggetto Period per controllare se non sono valide