Kürzlich bin ich auf ein Problem gestoßen: Beim Abrufen des Datums im Formular und beim Übertragen in den Hintergrund über JSON meldete die Funktion Date.parse (str) einen Fehler unter ff: NAN
Nachdem ich nach einigen Informationen gesucht hatte, stellte ich fest, dass die Funktion Date.parse() Anforderungen an das Datumsformat hat: Einzelheiten finden Sie in der Funktion Date.parse.
Für js-Betriebsdatum:
Erstellen Sie ein Datumsobjekt:
var objDate=new Date([arguments list]);
Es gibt fünf Arten von Parameterformen:
Kopieren Sie den Codecode wie folgt:
view plainnew Date("Monat dd,yyyy hh:mm:ss");
neues Datum("Monat dd,yyyy");
neues Datum (jjjj, mt, tt, hh, mm, ss);
neues Datum(jjjj,mth,tt);
neues Datum (ms);
veranschaulichen:
Monat: Gibt den Namen des Monats auf Englisch an, von Januar bis Dezember
mth: stellt den Monat als Ganzzahl dar, von 0 (Januar) bis 11 (Dezember)
Inhalt
dd: gibt den Tag des Monats an, von 1 bis 31
yyyy: vierstelliges Jahr
hh: Stunde, von 0 (Mitternacht) bis 23 (23 Uhr)
mm: Minuten, eine ganze Zahl von 0 bis 59
ss: Sekunden, eine ganze Zahl von 0 bis 59
ms: Millisekunden, eine Ganzzahl größer oder gleich 0, die die Anzahl der Millisekunden zwischen der zu erstellenden Zeit und der GMT-Zeit am 1. Januar 1970 angibt.
Was ich gefunden habe:
Die Datumskonstruktion in Javascript kann auch new Date("yyyy/MM/dd"); unterstützen, wobei: MM eine Ganzzahl ist, die den Monat von 0 (Januar) bis 11 (Dezember) darstellt, daher ist es sehr praktisch, reguläre Ausdrücke zu verwenden um String-Datumsangaben zu konvertieren.
Testcode:
Kopieren Sie den Codecode wie folgt:
<mce:script type="text/javascript"><!--
document.write("<br/>" + neues Datum("Februar 3,2009"));
document.write("<br/>" + new Date("February 3,2009 10:52:03"));
document.write("<br/>");
document.write("<br/>" + neues Datum(2009,1,3));
document.write("<br/>" + neues Datum(2009,1,3,10,52,03));
document.write("<br/>");
document.write("<br/>" + new Date(Date.parse("February 3,2009")));
document.write("<br/>" + new Date(Date.parse("February 3,2009 10:52:03")));
document.write("<br/>" + new Date(Date.parse(2009,1,3))); //Ausgabe: NAN
document.write("<br/>" + new Date(Date.parse(2009,1,3,10,52,03))); //Ausgabe: NAN
document.write("<br/>" + new Date(Date.parse("2009/02/03")));
document.write("<br/>");
document.write("<br/>" + neues Datum("2009/02/03"));
document.write("<br/>" + neues Datum("2009/02/03 11:12:13"));
document.write("<br/>" + new Date("2009-02-03")); //Ausgabe: NAN
// --></mce:script>
Ausgabeergebnis:
Dienstag, 3. Februar, 00:00:00 UTC+0800 2009
Dienstag, 3. Februar, 10:52:03 UTC+0800 2009
Dienstag, 3. Februar, 00:00:00 UTC+0800 2009
Dienstag, 3. Februar, 10:52:03 UTC+0800 2009
Dienstag, 3. Februar, 00:00:00 UTC+0800 2009
Dienstag, 3. Februar, 10:52:03 UTC+0800 2009
NaN
NaN
Dienstag, 3. Februar, 00:00:00 UTC+0800 2009
Dienstag, 3. Februar, 00:00:00 UTC+0800 2009
Dienstag, 3. Februar, 11:12:13 UTC+0800 2009
NaN
-------------------
Kopieren Sie den Codecode wie folgt:
window.onload=function(){
var dependenceVal="2005-3-4";
//Konvertieren Sie basierend auf der Datumszeichenfolge in ein Datum
var regEx = new RegExp("//-","gi");
dependedVal=dependedVal.replace(regEx,"/");
//dependedVal=dependedVal.replace("//-","/");//Das funktioniert nicht
Warnung (abhängiger Wert)
//parse erfordert das Format 2005/3/4
var milliseconds=Date.parse(dependedVal);
Warnung (Millisekunden)
var dependantDate=new Date();
dependentDate.setTime(Millisekunden);
var now = neues Datum();
//Achten Sie auf die Klammern, Prioritätsthemen, Hilflosigkeit
Alert("Die Anzahl der Jahre im Abstand:"+(now.getFullYear() - dependantDate.getFullYear()));
}
Tatsächlich muss das Datum im Millisekundenwert zwischen dem Browser und dem Server übertragen werden, andernfalls wird ein 400-Fehler gemeldet!