web-dev-qa-db-fra.com

Comparer deux dates avec JavaScript

Peut-on suggérer un moyen de comparer les valeurs de deux dates supérieures à, inférieures à, et pas dans le passé en utilisant JavaScript? Les valeurs proviendront des zones de texte.

1707
Alex

Le objet Date fera ce que vous voulez - construisez-en un pour chaque date, puis comparez-les à l'aide du >, <, <= ou >= .

Les opérateurs ==, !=, === et !== exigent que vous utilisiez 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();

être clair en vérifiant 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 listes déroulantes ou une forme similaire contrainte de saisie de la date plutôt que des zones de texte, cependant, de peur que vous ne vous trouviez dans l'enfer de la validation des entrées.

1944
moonshadow

Le moyen le plus simple de comparer des dates en javascript consiste tout d'abord à le convertir en objet Date, puis à comparer ces objets date.

Ci-dessous vous trouvez un objet avec trois fonctions:

  • dates.compare (a, b)

    Renvoie un nombre:

    • -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 se situe entre le ) début et fin (inclusif)
    • false si d est avant début ou après fin .
    • NaN si une ou plusieurs dates sont illégales.
  • dates.convert

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

    • a date - object: l'entrée est renvoyée telle quelle.
    • un tablea: interprété comme [année, mois, jour]. NOTE le mois est compris entre 0 et 11.
    • a nombre: interprété comme le nombre de millisecondes depuis le 1er janvier 1970 (un horodatage)
    • a string: Plusieurs formats différents sont pris en charge, tels que "AAAA/MM/JJ", "MM/JJ/AAAA", "31 janv. 2009", etc.
    • un objet: interprété comme un objet avec des attributs année, mois et date. NOTE le mois est compris entre 0 et 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
        );
    }
}
399
some

Comparez < et > comme d'habitude, mais tout ce qui implique = devrait utiliser un préfixe +. Ainsi:

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

J'espère que cela t'aides!

255
Daniel Lidström

Les opérateurs relationnels <<=>>= peuvent être utilisés 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

Toutefois, les opérateurs d'égalité ==!====!== ne peuvent pas être utilisés pour comparer (la valeur de) dates car :

  • Deux objets distincts ne sont jamais égaux pour les 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 des méthodes suivantes:

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() renvoient le nombre de millisecondes depuis le 1er janvier 1970 à 00:00 UTC. La fonction Number et l'opérateur unaire + appellent les méthodes valueOf() dans les coulisses.

137
Salman A

De loin, la méthode la plus simple consiste à soustraire une date à une autre et à comparer le résultat.

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

alert(oDateOne - oDateTwo === 0);
alert(oDateOne - oDateTwo < 0);
alert(oDateOne - oDateTwo > 0);
74
Peter Wilkinson

La comparaison des dates en JavaScript est assez simple ... JavaScript est intégré système de comparaison pour dates , ce qui facilite grandement la comparaison ...

Il vous suffit de suivre ces étapes pour comparer deux valeurs de date. Par exemple, vous avez deux entrées dont chacune a une valeur de date dans String et vous pouvez les comparer ...

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

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

2. Ils doivent être Date Object pour pouvoir être comparés en tant que valeurs de date, il suffit donc de les convertir en date, en utilisant new Date(), Je viens de les réaffecter pour des raisons de simplicité, mais vous pouvez le faire comme vous le souhaitez:

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

61
Alireza

Comparer jour seulement (en ignorant la composante heure):

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

Usage:

if(date1.sameDay(date2)) {
    // highlight day on calendar or something else clever
}
33
mpen

quel format?

Si vous construisez un Javascript Date Object , vous pouvez simplement le soustraire pour obtenir une différence en millisecondes (édition: ou tout simplement 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
30
Jason S

REPONSE COURTE

Voici une fonction qui retourne {boolean} si from de dateTime> à dateTime démonstration en 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 date et heure en type nombre, vous pouvez les comparer avec toutes les opérations de comparaison

(>, <, =,! =, ==,! ==,> = AND <=)

Alors

si vous connaissez C# Format personnalisé de chaîne de date et d'heure, cette bibliothèque devrait faire exactement la même chose et vous aider à formater votre date et heure dtmFRM si vous transmettez une chaîne de date/heure ou unix format

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 formats dans le fichier bibliothèque js

16
Mina Gabriel

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 vérifiez également ce lien http://www.w3schools.com/js/js_obj_date.asp

16
stay_hungry
function datesEqual(a, b)
{
   return (!(a>b || b>a))
}
13
sky

Remarque - Comparer seulement la partie de date:

Quand on compare deux dates en javascript. Cela prend des heures, des minutes et des secondes également à prendre en considération. Donc, si nous avons seulement besoin de comparer la date seulement, voici 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.

13
Sanjeev Singh
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
13
Paul Woolcock

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 non plus définis, ou ...

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

... Si vous préférez qu'ils ne soient pas égaux.

11
Paul

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 est égal à dateTimeB

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

10
Razan Paul

Méfiez-vous du fuseau horaire

Une date javascript n'a aucune notion de fuseau horaire . C'est un moment dans le temps (ticks depuis l'époque) avec des fonctions pratiques pour la traduction de chaînes dans le fuseau horaire "local". Si vous voulez utiliser des dates avec des objets de date, comme tout le monde, vous voulez que vos dates représentent UTC à minuit au début de la date en question. C’est une convention commune et nécessaire qui vous travaillez 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 Date minuit UTC.

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 en Nouvelle-Zélande et aux États-Unis cliquent en même temps et obtiennent des dates différentes. Dans ce cas, faites ceci ...

// 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 prime sur la précision locale. Dans ce cas, faites ceci ...

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

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

Après avoir pris soin de gérer le fuseau horaire lors de la création, vous devez également vous assurer de le conserver lorsque vous reconvertissez en représentation sous forme de chaîne. afin que vous puissiez 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 évite totalement tout le reste, surtout ...

  • getYear(), getMonth(), getDate()
9
bbsimonbb

Soustrayez deux dates pour obtenir la différence en millisecondes, si vous obtenez 0 c'est la même date.

function areSameDate(d1, d2){
    return d1 - d2 === 0
}
8
Yukulélé

Pour comparer deux dates, nous pouvons utiliser la bibliothèque JavaScript date.js disponible à l'adresse suivante: https://code.google.com/archive/p/datejs/downloads

et utilisez la méthode Date.compare( Date date1, Date date2 ) et elle renvoie un nombre qui signifie le résultat suivant:

-1 = date1 est inférieure à date2.

0 = les valeurs sont égales.

1 = date1 est supérieure à date2.

8
Salahin Rocky

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

Vous pouvez utiliser Date.parse (), qui prend du texte libre, tente de le convertir en une nouvelle date, mais si vous avez le contrôle de la page, je vous recommanderais d'utiliser des zones de sélection HTML ou un sélecteur de date tel que le contrôle de calendrier YUI). ou le jQuery UI Datepicker .

Une fois que vous avez une date, comme d'autres personnes l'ont fait remarquer, vous pouvez utiliser une arithmétique simple pour soustraire les dates et la reconvertir en nombre de jours en divisant le nombre (en secondes) par le nombre de secondes d'un jour (60 * 60 * 24 = 86400).

7
sh1mmer

Supposons que vous obteniez les objets de date A et B, obtenez leur valeur de temps EPOCH, puis soustrayez pour obtenir la différence en millisecondes.

var diff = +A - +B;

C'est tout.

7
foobar
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
vickisys

Je stocke généralement Dates comme timestamps(Number) dans des bases de données.

Lorsque je dois comparer, je compare simplement entre ces horodatages ou

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

Notez que == ou === ne fonctionne pas correctement sauf si vos variables sont des références du même objet Date.

Convertissez ces objets Date en timestamp (nombre) d’abord, puis comparez leur égalité.


Date à l'horodatage

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

Horodatage à date

var timestamp = 0; // 1970-01-01 00:00:00
var DateObject = new Date(timestamp);
5
InspiredJW

Une version améliorée du code posté par "some"

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

usage:

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

Si votre format de date est le suivant, 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 le numéro 20121121 est supérieur à 20121103 ou non.

4
totten

Avant de comparer l'objet Dates, essayez de régler leurs deux millisecondes sur zéro, comme Date.setMilliseconds(0);.

Dans certains cas où l’objet Date est créé dynamiquement en javascript, si vous continuez d’imprimer le Date.getTime(), vous verrez les millisecondes se modifier, ce qui empêchera l’égalité des deux dates.

2
Júlio Paulillo
        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
Jeeva

Une autre façon de comparer deux dates consiste à utiliser la méthode toISOString() . Ceci est particulièrement utile lorsque vous comparez à une date fixe conservée dans une chaîne, car vous pouvez éviter de créer un objet de courte durée. Grâce au format ISO 8601, vous pouvez comparer ces chaînes lexicographiquement (au moins lorsque vous utilisez le même fuseau horaire).

Je ne dis pas nécessairement que c'est mieux que d'utiliser des objets temporels ou des horodatages; offrant simplement ceci comme une autre option. Il peut y avoir des cas Edge où cela pourrait échouer, mais je ne les ai pas encore trouvés :)

1
yoniLavi
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
user1931504

La manière simple est,

var first = '2012-11-21';
var second = '2012-11-03';

if (new Date(first) > new Date(second) {
    .....
}
1
MICHAEL PRABHU

Voici ce que j'ai fait dans l'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;
     }
}

appelant ceci sur le formulaire onsubmit. J'espère que cela t'aides.

1
Brijesh

Salut Voici mon code pour comparer les dates. Dans mon cas, je fais un contrôle pour ne pas permettre de sélectionner les 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
Qasim

Supposons que vous traitez avec ce 2014[:-/.]06[:-/.]06 ou ce 06[:-/.]06[:-/.]2014 format de date, 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 constater, nous séparons les séparateurs, puis comparons les entiers.

1
hex494D49

Vous pouvez comparer les dates de la manière la plus simple et la plus compréhensible.

<input type="date" id="getdate1" />
<input type="date" id="getdate2" />

supposons que vous ayez deux dates à comparer.

donc tout d'abord écrire une méthode commune pour analyser la date.

 <script type="text/javascript">
            function parseDate(input) {
             var datecomp= input.split('.'); //if date format 21.09.2017

              var tparts=timecomp.split(':');//if time also giving
              return new Date(dparts[2], dparts[1]-1, dparts[0], tparts[0], tparts[1]);
// here new date(  year, month, date,)
            }
        </script>

parseDate () est la méthode courante pour analyser la date. vous pouvez maintenant vérifier votre date =,>, <tout type de comparaison

    <script type="text/javascript">

              $(document).ready(function(){
              //parseDate(pass in this method date);
                    Var Date1=parseDate($("#getdate1").val());
                        Var Date2=parseDate($("#getdate2").val());
               //use any oe < or > or = as per ur requirment 
               if(Date1 = Date2){
         return false;  //or your code {}
}
 });
    </script>

Bien sûr, ce code vous aidera.

0
Bachas