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?
<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>
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")
}
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.
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 date
month
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");
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.
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.