2791 Stimmen

Zwei Daten mit JavaScript vergleichen

Kann jemand einen Vorschlag machen, wie man die Werte von zwei Daten größer als, kleiner als, und nicht in der Vergangenheit mit JavaScript? Die Werte werden aus Textfeldern stammen.

20 Stimmen

Wenn es um DateTime und Manipulation in JS geht, suche ich nicht weiter als momentjs :)

101 Stimmen

Keine Notwendigkeit, Momentjs zu verwenden, um 2 Daten zu vergleichen. Verwenden Sie einfach reines Javascript's Date Objekt. Prüfen Sie die Hauptantwort für weitere Details.

0 Stimmen

Sie können die folgende Antwort lesen: stackoverflow.com/questions/4812152/ Prüfen Sie getDateDifference und getDifferenceInDays, ob es helfen kann.

19voto

Mina Gabriel Punkte 19473

KURZANTWORT

Hier ist eine Funktion, die {boolean} zurückgibt, wenn die from dateTime > to dateTime Demo in Aktion

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

Erläuterung

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 

da Sie jetzt sowohl datetime als auch number type haben können Sie sie mit beliebigen Vergleichsoperationen vergleichen

( >, < ,= ,!= ,== ,!== ,>= UND <=)

Dann

wenn Sie vertraut sind mit C# Custom Date and Time Format String diese Bibliothek sollte genau das Gleiche tun und Ihnen helfen, Ihr Datum und Ihre Uhrzeit zu formatieren dtmFRM ob Sie einen Datum-Zeit-String oder das Unix-Format übergeben

Verwendung

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

DEMO

Sie müssen nur eines der folgenden Formate in die Bibliothek aufnehmen js Datei

19voto

stay_hungry Punkte 1408

Sie diesen Code verwenden,

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

Und schauen Sie sich auch diesen Link an http://www.w3schools.com/js/js_obj_date.asp

0 Stimmen

Dies setzt eine bestimmte Jahr-Monat-Datum-Reihenfolge der Zeichenkette voraus und wäre eine sehr anfällige Implementierung für Datumsangaben in verschiedenen Gebietsschemaformaten.

14voto

Razan Paul Punkte 12902

Über 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"));

Die Methode gibt 1 zurück, wenn dateTimeA größer ist als dateTimeB

Die Methode gibt 0 zurück, wenn dateTimeA ist gleich dateTimeB

Die Methode gibt -1 zurück, wenn dateTimeA ist kleiner als dateTimeB

14voto

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

14voto

function datesEqual(a, b)
{
   return (!(a>b || b>a))
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X