Comparer deux dates avec JavaScript

Quelqu'un peut-il suggérer un moyen de comparer les valeurs de deux dates plus grand que, moins que, et pas dans le passé en utilisant JavaScript? Les valeurs provenant de zones de texte...

1433
demandé sur Alireza 2009-01-29 22:14:06

30 réponses

le Date object fera ce que vous voulez - construire un pour chaque date, puis les comparer en utilisant le > , < , <= ou >= .

le == , != , === , et les opérateurs !== vous demandent d'utiliser date.getTime() comme dans

var d1 = new Date();
var d2 = new Date(d1);
var same = d1.getTime() === d2.getTime();
var notSame = d1.getTime() !== d2.getTime();

pour être clair que la vérification de l'égalité directement avec les objets de données ne fonctionnera pas

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)

je vous suggère d'utiliser des drop-downs ou une forme similaire contrainte de saisie de date plutôt que des boîtes de texte, cependant, de peur que vous ne vous trouviez dans l'enfer de la validation des entrées.

1620
répondu moonshadow 2016-05-26 16:46:33

la façon la plus facile de comparer des dates en javascript est d'abord de les convertir en objet Date, puis de comparer ces objets date.

ci-dessous vous trouvez un objet avec trois fonctions:

  • dates.comparer (a,b)

    renvoie un numéro:

    • -1 si a < b
    • 0 si a =b
    • 1 Si a > b
    • NaN si A ou b est une date illégale
  • dates.inRange (d,début,fin)

    renvoie un booléen ou NaN:

    • vrai si d est entre le démarrer et fin (inclusif)
    • false if d est avant démarrer ou après fin .
    • NaN si une ou plusieurs des dates sont illégales.
  • dates.conversion

    utilisé par les autres fonctions pour convertir leur entrée en objet date. L'entrée peut être

    • un date -objet : Le l'entrée est rendu comme tel.
    • un array : Interprété comme [jour,mois,année]. NOTE mois est 0-11.
    • a nombre : interprété comme le nombre de millisecondes depuis le 1er janvier 1970 (une estampille temporelle)
    • a string : plusieurs formats différents sont pris en charge, comme "AAAA/MM/JJ", "MM/JJ/AAAA", "Jan 31 2009" etc.
    • un objet : Interprétée comme un objet avec l'année, le mois et la date attributs. NOTE mois est 0-11.

.

// 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
        );
    }
}
376
répondu some 2015-09-01 17:16:31

Comparer < et > comme d'habitude, mais en ce qui concerne la = doit utiliser un + préfixe. Comme ceci:

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

Espérons que cette aide!

228
répondu Daniel Lidström 2013-05-23 12:21:09

les opérateurs relationnels < <= > >= peut être utilisé pour comparer les dates JavaScript:

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

cependant, les opérateurs d'égalité == != === !== ne peut pas être utilisé pour comparer (la valeur de) dates parce que :

  • deux objets distincts ne sont jamais égaux pour des comparaisons strictes ou abstraites.
  • une expression comparant des objets n'est vraie que si les opérandes font référence au même objet.

vous pouvez comparer la valeur des dates pour l'égalité en utilisant l'une de ces méthodes:

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

les Deux Date.getTime() et Date.valueOf() renvoie le nombre de millisecondes depuis le 1er janvier 1970, 00:00 UTC. À la fois la fonction Number et l'opérateur unaire + appelez les méthodes valueOf() dans les coulisses.

124
répondu Salman A 2015-03-31 17:08:37

la méthode de loin la plus facile est de soustraire une date de l'autre et de comparer le résultat.

var oDateOne = new Date();
var oDateTwo = new Date();

alert(oDateOne - oDateTwo === 0);
alert(oDateOne - oDateTwo < 0);
alert(oDateOne - oDateTwo > 0);
64
répondu Peter Wilkinson 2011-11-01 00:48:12

Comparer "les 1519110920" dates en JavaScript est assez facile... JavaScript a intégré système de comparaison pour dates ce qui rend si facile de faire la comparaison...

il suffit de suivre ces étapes pour comparer la valeur de 2 dates, par exemple vous avez 2 entrées qui ont chacune une valeur de Date dans String et vous de les comparer...

1. vous avez 2 valeurs de chaîne que vous obtenez à partir d'une entrée et vous aimeriez les comparer, ils sont comme ci-dessous:

var date1 = '01/12/2018';
var date2 = '12/12/2018';

2. ils ont besoin d'être Date Object pour être comparés en tant que valeurs de date, donc il suffit de les convertir à date, en utilisant new Date() , je viens de les réaffecter pour la simplicité de l'explication, mais vous pouvez le faire comme vous voulez:

date1 = new Date(date1);
date2 = new Date(date2);

3. maintenant comparez-les simplement, en utilisant le > < >= <=

date1 > date2;  //false
date1 < date2;  //true
date1 >= date2; //false
date1 <= date2; //true

compare dates in javascript

34
répondu Alireza 2018-05-07 10:38:19

Comparer la journée seulement (en ignorant le temps de composants):

Date.prototype.sameDay = function(d) {
  return this.getFullYear() === d.getFullYear()
    && this.getDate() === d.getDate()
    && this.getMonth() === d.getMonth();
}

Utilisation:

if(date1.sameDay(date2)) {
    // highlight day on calendar or something else clever
}
30
répondu mpen 2015-07-14 15:37:57

quel format?

si vous construisez un Javascript Date object , vous pouvez simplement les soustraire pour obtenir une différence de millisecondes (éditer: ou juste les comparer):

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
25
répondu Jason S 2018-02-20 16:14:32

SHORT ANSWER

Voici une fonction qui renvoie {booléen} si le de dateTime > à dateTime Demo in action

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

explication

jsFiddle

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 

puisque vous avez maintenant les deux datetime dans le type de numéro vous pouvez les comparer avec n'importe quelles opérations de comparaison

( >, < ,= ,!= ,== ,!= = , > = Et<=)

puis

si vous êtes familier avec C# date personnalisée et chaîne de Format D'Heure cette bibliothèque devrait faire la même chose exacte et vous aider à formater votre date et votre heure dtmFRM si vous passez dans la chaîne de temps de date ou le format unix

Utilisation

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

DÉMO

tout ce que vous avez à faire est de passer l'un de ces format pacifié dans la bibliothèque js fichier

14
répondu Mina Gabriel 2017-02-27 19:22:36
function datesEqual(a, b)
{
   return (!(a>b || b>a))
}
13
répondu 2009-07-20 03:36:57

vous utilisez ce 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");
  }

et aussi vérifier ce lien http://www.w3schools.com/js/js_obj_date.asp

13
répondu stay_hungry 2013-05-17 04:06:02
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
12
répondu Paul Woolcock 2011-04-28 07:18:31

juste pour ajouter une autre possibilité aux nombreuses options existantes, vous pouvez essayer:

if (date1.valueOf()==date2.valueOf()) .....

...qui semble fonctionner pour moi. Bien sûr, vous devez vous assurer que les deux dates ne sont pas indéfinies...

if ((date1?date1.valueOf():0)==(date2?date2.valueOf():0) .....

de cette façon, nous pouvons nous assurer qu'une comparaison positive est faite si les deux ne sont pas définis également, ou...

if ((date1?date1.valueOf():0)==(date2?date2.valueOf():-1) .....

...si vous préférez ne pas être égaux.

10
répondu Paul 2014-03-26 15:41:05

Note-Comparer Seulement La Date Partie:

quand on compare deux dates en javascript. Cela prend des heures, des minutes et des secondes également en considération.. Donc, Si nous avons seulement besoin de comparer uniquement la date, c'est l'approche:

var date1= new Date("01/01/2014").setHours(0,0,0,0);

var date2= new Date("01/01/2014").setHours(0,0,0,0);

maintenant: if date1.valueOf()> date2.valueOf() fonctionnera comme un charme.

10
répondu Sanjeev Singh 2017-03-15 14:41:06

Via 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"));

la méthode retourne 1 si dateTimeA est supérieur à dateTimeB

la méthode retourne 0 si dateTimeA égale dateTimeB

la méthode retourne -1 si dateTimeA est inférieur à dateTimeB

9
répondu Razan Paul 2018-04-11 15:47:09

pour comparer deux dates, nous pouvons utiliser la date.JS JavaScript library qui peut être trouvé à: https://code.google.com/archive/p/datejs/downloads

et l'utilisation de la méthode Date.compare( Date date1, Date date2 ) et il retourne un nombre qui signifie le résultat suivant:

-1 = date1 est inférieur à date2.

0 = les valeurs sont égales.

1 = date1 est plus grand que date2.

8
répondu Salahin Rocky 2016-08-31 17:18:59

pour créer des dates à partir de texte libre en Javascript, vous devez les analyser dans l'objet Date ().

vous pouvez utiliser la Date.parse () qui prend du texte libre essaie de le convertir en une nouvelle date mais si vous avez le contrôle sur la page, je vous recommande D'utiliser des boîtes de sélection HTML à la place ou un sélecteur de date tel que le Yui calendar control ou le jQuery UI Datepicker .

une fois que vous avez une date comme d'autres personnes ont souligné que vous pouvez utiliser l'arithmétique simple pour soustraire les dates et de le convertir en un nombre de jours en divisant le nombre (en secondes) par le nombre de secondes dans une journée (60*60*24 = 86400).

7
répondu sh1mmer 2009-01-29 19:35:19

dit que vous avez obtenu les objets de date A et B, obtenir leur valeur de temps EPOC, puis soustraire pour obtenir la différence en millisecondes.

var diff = +A - +B;

C'est tout.

7
répondu foobar 2011-07-23 03:03:35

soustrayez deux dates obtenez la différence en millisecondes, si vous obtenez 0 C'est la même date

function areSameDate(d1, d2){
    return d1 - d2 === 0
}
7
répondu Yukulélé 2017-09-09 13:25:24
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;
}
6
répondu vickisys 2017-12-27 20:42:55

une version améliorée du code posté par" certains "

/* 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 
        );
};

utilisation:

  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));
5
répondu Rodrigo Pinho Pereira de Souza 2011-08-20 04:02:04

si le format suivant est votre date, vous pouvez utiliser ce code:

var first = '2012-11-21';
var second = '2012-11-03';
if(parseInt(first.replace(/-/g,""),10) > parseInt(second.replace(/-/g,""),10)){
   //...
}

il vérifiera si 20121121 est plus grand que 20121103 ou non.

4
répondu totten 2012-06-23 14:15:20

je stocke habituellement Dates comme timestamps(Number) dans les bases de données.

quand j'ai besoin de comparer, je compare simplement entre ces horodateurs ou

convertissez-le en objet Date et comparez-le avec > < si nécessaire.

notez que == ou === ne fonctionne pas correctement à moins que vos variables ne soient des références du même objet Date.

convertissez ces objets de Date pour l'horodatage(nombre) d'abord, puis de comparer l'égalité.


Date en Timestamp

var timestamp_1970 = new Date(0).getTime(); // 1970-01-01 00:00:00
var timestamp = new Date().getTime(); // Current Timestamp

Timestamp de la Date

var timestamp = 0; // 1970-01-01 00:00:00
var DateObject = new Date(timestamp);
4
répondu InspiredJW 2012-08-22 01:40:14

MÉFIEZ-VOUS DU FUSEAU HORAIRE

javascript date a pas de notion de fuseau horaire . C'est un moment dans le temps (tic-tac depuis l'époque) avec des fonctions pratiques pour traduire vers et depuis des chaînes dans le fuseau horaire "local". Si vous voulez travailler avec des dates en utilisant des objets date, comme tout le monde ici le fait, vous voulez que vos dates représentent UTC midnight au début de la date en question. et la convention nécessaire qui vous permet de travailler avec des dates indépendamment de la saison ou du fuseau horaire de leur création. Vous devez donc être très vigilant pour gérer la notion de fuseau horaire, en particulier lorsque vous créez votre objet midnight UTC Date.

la plupart du temps, vous voudrez que votre date reflète le fuseau horaire de l'utilisateur. Cliquez si aujourd'hui est votre anniversaire . Les utilisateurs de NZ et US cliquent en même temps et obtiennent des dates différentes. Dans ce cas, faire...

// 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()));

parfois, la comparabilité internationale l'emporte sur la précision locale. Dans ce cas, faire...

// the date in London of a moment in time. Device timezone is ignored.
new Date(Date.UTC(myDate.getUTCYear(), myDate.getyUTCMonth(), myDate.getUTCDate()));

maintenant, vous pouvez comparer directement vos objets date comme les autres réponses le suggèrent.

ayant pris soin de gérer le fuseau horaire lorsque vous créez, vous devez également être sûr de garder le fuseau horaire hors lorsque vous convertissez de nouveau en une représentation de chaîne. pour que vous puissiez l'utiliser en toute sécurité...

  • toISOString()
  • getUTCxxx()
  • getTime() //returns a number with no time or timezone.
  • .toLocaleDateString("fr",{timezone:"UTC"}) // whatever locale you want, but ALWAYS UTC.

et éviter totalement tout le reste, surtout...

  • getYear() , getMonth() , getDate()
4
répondu bbsimonbb 2017-10-20 09:51:47

avant de comparer l'objet Dates , essayez de régler les deux millisecondes à zéro comme Date.setMilliseconds(0); .

dans certains cas où l'objet Date est dynamiquement créé en javascript, si vous continuez à imprimer le Date.getTime() , vous verrez les millisecondes changer, ce qui empêchera l'égalité des deux dates.

2
répondu Júlio Paulillo 2013-10-24 17:34:25
        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;
        }

utilisez ce code pour comparer la date en utilisant javascript.

Merci D. Jeeva

1
répondu Jeeva 2012-07-10 10:20:12
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;
}
1
répondu user1931504 2013-02-12 10:55:19

Voici ce que j'ai fait dans un de mes projets,

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;
     }
}

appelle ça sur le formulaire onsubmit. espérons que cette aide.

1
répondu Brijesh 2013-09-20 15:37:31

supposons que vous vous occupiez de ce format de date 2014[:-/.]06[:-/.]06 ou 06[:-/.]06[:-/.]2014 , alors vous pouvez comparer les dates de cette façon

var a = '2014.06/07', b = '2014-06.07', c = '07-06/2014', d = '07/06.2014';

parseInt(a.replace(/[:\s\/\.-]/g, '')) == parseInt(b.replace(/[:\s\/\.-]/g, '')); // true
parseInt(c.replace(/[:\s\/\.-]/g, '')) == parseInt(d.replace(/[:\s\/\.-]/g, '')); // true
parseInt(a.replace(/[:\s\/\.-]/g, '')) < parseInt(b.replace(/[:\s\/\.-]/g, '')); // false
parseInt(c.replace(/[:\s\/\.-]/g, '')) > parseInt(d.replace(/[:\s\/\.-]/g, '')); // false

comme vous pouvez le voir, nous enlevons le(s) séparateur (s) et comparons ensuite des entiers.

1
répondu hex494D49 2014-06-23 22:22:18

Salut Voici mon code pour comparer les dates . Dans mon cas, je fais une vérification pour ne pas permettre de sélectionner des dates passées.

var myPickupDate = <pick up date> ;
var isPastPickupDateSelected = false;
var currentDate = new Date();

if(currentDate.getFullYear() <= myPickupDate.getFullYear()){
    if(currentDate.getMonth()+1 <= myPickupDate.getMonth()+1 || currentDate.getFullYear() < myPickupDate.getFullYear()){
                        if(currentDate.getDate() <= myPickupDate.getDate() || currentDate.getMonth()+1 < myPickupDate.getMonth()+1 || currentDate.getFullYear() < myPickupDate.getFullYear()){
                                            isPastPickupDateSelected = false;
                                            return;
                                        }
                    }
}
console.log("cannot select past pickup date");
isPastPickupDateSelected = true;
1
répondu Qasim 2016-04-08 13:45:34