Hoppla ... ein bisschen boo-boo - der Datumskonstruktor sieht tatsächlich so aus: neues Datum (Jahr, Monat, Datum [, Stunde, Minute, Sekunde, Millisekunde]), sodass Sie die Reihenfolge der dateParts im Konstruktor ändern müssen.
Salman A
6
Noch ein Boo-Boo. Der JavaScript-Datumskonstruktor ist seltsam im Umgang mit Monaten. 0 bedeutet Januar, 1 Februar usw. Die Zeile im obigen Code sollte folgendermaßen aussehen: var date = new Date (dateParts [2], dateParts [1] - 1, dateParts [0]);
Elias Zamaria
1
@ Mikez302, du hast recht. Die verknüpfte MDC-Referenz weist ebenfalls darauf hin. Code behoben
Jonathan Fingland
mmm, aber wie kann man überprüfen, ob strDate einen ungültigen Wert wie "30.30.2000" hat?
Dr. Nr.
2
@ user674887, Sie können die Werte nach dem Parsen vergleichen. zB dateParts [1] -1 == date.getMonth ()
Jonathan Fingland
51
Wenn Sie die jQuery-Benutzeroberfläche verwenden, können Sie jedes Datum formatieren mit:
<html><body>Your date formated:<span id="date1"></span><br/></body></html>
+1 Ich sehe nicht, dass JavaScript und JQuery eine häufige Kombination sind.
DJNA
Eine Antwort sollte nicht auf einer Bibliothek beruhen, die nicht markiert oder im OP erwähnt wird. Die Verwendung von jQuery als Datumsbibliothek ist ein gewaltiger Overkill, wenn eine dreizeilige Funktion denselben Job ausführen kann.
RobG
9
Wir verwenden diesen Code, um zu überprüfen, ob die Zeichenfolge ein gültiges Datum ist
Das testet überhaupt nicht auf gültige Daten, sondern nur, ob der Datumskonstruktor aus der Eingabe ein gültiges Datum erstellen kann. Die beiden sind nicht dasselbe.
In den meisten Fällen ist MomentJS ein Overkill, da für die Verwendung von reinem JavaScript nur Hunderte von Bytes erforderlich sind, während MomentJS 12,4 KB komprimiert ist. Praktisch für Entwickler, verlangsamt aber die Website. Lohnt sich nicht.
Raptor
3
Ich habe folgenden Code im IE verwendet. (IE8 kompatibel)
var dString ="2013.2.4";var myDate =newDate( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1"));
alert("my date:"+ myDate );
@ Duke - new Date(Date.parse('02.02.1999'))führt zu identischen Ergebnissen wie new Date('02.02.1999'), einschließlich ungültigem Datum in einigen Browsern. Die Verwendung des integrierten Parsers ist wohl die schlechteste Methode, um einen Zeitstempel zu analysieren.
RobG
2
Diese Funktion behandelt auch das ungültige Datum 29.2.2001.
function parseDate(str){var dateParts = str.split(".");if(dateParts.length !=3)returnnull;var year = dateParts[2];var month = dateParts[1];var day = dateParts[0];if(isNaN(day)|| isNaN(month)|| isNaN(year))returnnull;var result =newDate(year,(month -1), day);if(result ==null)returnnull;if(result.getDate()!= day)returnnull;if(result.getMonth()!=(month -1))returnnull;if(result.getFullYear()!= year)returnnull;return result;}
Sie sollten Javascript verwenden, nicht JQuery, da es kein JQuery-Tag gibt
Sagar
glücklich ... bedeutet, nur das Senario zu verstehen
Bachas
Gut. Ich glaube nicht, dass Ihr Beispiel anders ist als das von Martin Staufcik. Tatsächlich hat seine Antwort eine zusätzliche Logik, um ungültige Daten zu behandeln.
Sagar
Martin Staufcik behandelt die Bedingungen, die im Allgemeinen nicht auftreten. Kannst du mir einen Kalender geben, der ungültig machen kann? Warum sollten wir so langen Code schreiben, wenn wir es kurz haben? Es wäre mir viel besser, wenn Martin Staufcik auch geben würde, um das Datum mit der Zeit zu behandeln.
Antworten:
Sehen:
Code:
quelle
Wenn Sie die jQuery-Benutzeroberfläche verwenden, können Sie jedes Datum formatieren mit:
http://jsfiddle.net/mescalito2345/ND2Qg/14/
quelle
Wir verwenden diesen Code, um zu überprüfen, ob die Zeichenfolge ein gültiges Datum ist
quelle
Refs: http://momentjs.com/docs/#/parsing/string/
Wenn Sie moment.js verwenden, können Sie den Modus "Zeichenfolge" + "Format" verwenden
Ex:
quelle
Ich habe folgenden Code im IE verwendet. (IE8 kompatibel)
quelle
ASP.NET-Entwickler haben die Wahl zwischen diesem praktischen integrierten Gerät (MS JS muss auf der Seite enthalten sein):
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
quelle
Datumsobjekt verwenden:
Geben Sie: 917902800000
quelle
new Date(Date.parse('02.02.1999'))
new Date(Date.parse('02.02.1999'))
Javascriptnew Date(Date.parse('02.02.1999'))
führt zu identischen Ergebnissen wienew Date('02.02.1999')
, einschließlich ungültigem Datum in einigen Browsern. Die Verwendung des integrierten Parsers ist wohl die schlechteste Methode, um einen Zeitstempel zu analysieren.Diese Funktion behandelt auch das ungültige Datum 29.2.2001.
quelle
Sie können das Datum formatieren, indem Sie nur diesen Codetyp erstellen. In Javascript.
quelle