wake-up-neo.com

vergleiche den String mit dem heutigen Datum in Javascript

Ich habe eine Zeichenfolge aus einem Eingabefeld erhalten, die ich für date mit einem Format wie diesem 25-02-2013 verwende. Jetzt möchte ich die Zeichenfolge mit dem heutigen Datum vergleichen. Ich möchte wissen, ob die Zeichenfolge älter oder neuer als das heutige Datum ist.

Irgendwelche Vorschläge?

12
    <script type="text/javascript">

var q = new Date();
var m = q.getMonth()+1;
var d = q.getDay();
var y = q.getFullYear();

var date = new Date(y,m,d);

mydate=new Date('2011-04-11');
console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert("greater");
}
else
{
    alert("smaller")
}


</script>
9
polin

Exakter Datumsvergleich und behobener Fehler aus akzeptierter Antwort

var q = new Date();
var m = q.getMonth();
var d = q.getDay();
var y = q.getFullYear();

var date = new Date(y,m,d);

mydate=new Date('2011-04-11');
console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert("greater");
}
else
{
    alert("smaller")
}
13

Sie können einen einfachen Vergleichsoperator verwenden, um festzustellen, ob ein Datum größer als ein anderes ist:

var today = new Date();
var jun3 = new Date("2016-06-03 0:00:00");

if(today > jun3){
    // True if today is on or after June 3rd 2016
}else{
    // Today is before June 3rd
}

Der Grund, warum ich 0:00:00 zu der zweiten Variablen hinzugefügt habe, ist, dass sie ohne die UTC-Zeit (Greenwich-Zeit) verglichen wird, was zu unerwünschten Ergebnissen führen kann. Wenn Sie die Zeit auf 0 setzen, wird sie mit der lokalen Mitternacht des Benutzers verglichen.

7
Marquizzo

Die Verwendung des Javascript-Objekts Date wird für Sie einfacher. Da das Date-Objekt Ihr Format jedoch nicht unterstützt, müssen Sie Ihre Eingabezeichenfolge (z. B. 25-02-2013) mit '-' analysieren, um datemonth und year zu erhalten, und zum Vergleich dann Date-Objekt verwenden.

var x ='23-5-2010';
var a = x.split('-');
 var date = new Date (a[2], a[1] - 1,a[0]);//using a[1]-1 since Date object has month from 0-11
 var Today = new Date();
 if (date > Today)
    alert("great");
 else
    alert("less");
4
999k

Wenn Ihre Datumseingabe das Format "25-02-2013" hat, können Sie die Zeichenfolge mit der Methode split () in DD, MM und YYYY aufteilen:

var date_string="25-02-2013";

var day  = parseInt(date_string.split("-")[0]);
var month= parseInt(date_string.split("-")[1]);
var year = parseInt(date_string.split("-")[2]);

Die parseInt () - Funktion wird verwendet, um den String in eine Ganzzahl zu machen. Die 3 Variablen können dann mit den Eigenschaften des Date () - Objekts verglichen werden.

0
TheTurkey

Die wichtigsten Punkte, die beim Datumsvergleich berücksichtigt werden müssen

  • Beide Datumsangaben sollten dasselbe Format haben, um genaue Ergebnisse zu erhalten.
  • Wenn Sie das Datums-/Uhrzeitformat verwenden und nur einen Datumsvergleich durchführen möchten, stellen Sie sicher, dass Sie das Format in das entsprechende Format konvertieren.

Hier ist der Code, den ich verwendet habe.

           var dateNotifStr = oRecord.getData("dateNotif");
           var today = new Date();       
           var todayDateFormatted = new Date(today.getFullYear(),today.getMonth(),today.getDate());

           var dateNotif=new Date(dateNotifStr);
           var dateNotifFormatted = new Date(dateNotif.getFullYear(),dateNotif.getMonth(),dateNotif.getDate());

Nun, dies kann weiter optimiert werden, aber dies sollte Ihnen eine klare Vorstellung davon geben, was erforderlich ist, um Datumsangaben in einheitlichem Format zu machen.

0
mitpatoliya