Warum Datum.analysieren nicht wieder ein Date Objekt?
today1 = new Date();
today2 = Date.parse("2008-28-10");
Vergleichen die Zeit (Millisekunde) Werte, diese habe ich aber das folgende zu tun, weil today2 ist nur eine Zahl.
if (today1.getTime() == today2)
Warum ist das so?
Und was ist das problem? Warum müssen Sie es tun, in einem Schritt? Ist es eine geschäftliche Notwendigkeit?
Mein problem ist, dass ich, und ich bin sicher, andere würden erwarten, dass der parse-Methode auf ein Objekt zur Rückgabe eines Objekts vom Typ die Methode aufgerufen wird.
Mein problem ist, dass ich, und ich bin sicher, andere würden erwarten, dass der parse-Methode auf ein Objekt zur Rückgabe eines Objekts vom Typ die Methode aufgerufen wird.
InformationsquelleAutor ProfK | 2008-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort auf die Frage im Titel: Weil Sie beschlossen also beim erstellen der JavaScript-Sprache. Wahrscheinlich, weil Java
java.util.Date
parse-Funktion war die gleiche Sache zu tun, und Sie wollten zu imitieren sein Verhalten, um die Sprache zu fühlen, mehr vertraut.Antwort auf die Frage im text... Nutzt dieses Konstrukt, um zwei date-Objekte:
EDIT: EINE einfache
funktioniert auch.
Hinweis, dass der Internet Explorer (d.h. JScript) nicht verstehen Striche in der Datum-string. Es funktioniert mit Schrägstrichen, aber:
Ja. Das ist der einzige Tag, notation, dass macht jede Art von Sinn.
InformationsquelleAutor Tomalak
Wenn ich mich richtig erinnere, Datum, gibt Sie einen Wert von bis zu Millisekunden-die Date-Objekt. Also, wenn dieser code läuft genau auf 2008-28-10 bei 00:00:00:000, Sie werden nicht die gleichen.
Nur eine Ergänzung: Datum.parse() ist per definition gibt einen long-Wert, der die Millisekunden-Wert das Datum, und nicht das Date-Objekt selbst. Wenn Sie möchten, halten Sie die Date-Objekt selbst, einfach nur bauen es so auf:
Weitere Referenz, check out: die Date-Klasse Referenz
Wie ich fügte hinzu, das Datum.analysieren von def gibt die Millisekunden-Wert, siehe der Hinweis, den ich verlinkt...
InformationsquelleAutor Yuval Adam
Ich nicht beantworten kann, an die Stelle der Sprache der Designer, aber Sie können das Ergebnis auf dem neuesten Stand.analysieren oder Datum.UTC in der Date-Konstruktor für dieses Objekt.
Beachten Sie, dass Sie Ihre code-Beispiel ist falsch: es ist nicht ein gültiges Datum-format, nicht-ISO (yyyy-mm-dd) oder IETF (Mon, 25 Dec 1995 13:30:00 GMT+0430 ). So erhalten Sie ein NaN. Datum.analysieren, verstehen nur IETF-format, von dem, was ich gelesen habe auf MDC.
Wenn Sie brauchen, um zu vergleichen zwei Daten, die Sie vielleicht vergleichen Sie die Ergebnisse .getFullYear(), .getMonth() und .getDay () oder vergleichen Sie einfach die string-Repräsentationen auf die gewünschte Ebene.
InformationsquelleAutor PhiLho
Welche Daten.Parsen ist die Rücksendung ist ein NaN. Die fundementally ist eine unbestimmte Anzahl. Dies ist, was die meisten Implementierungen zurückgeben, wenn Ihr nicht in der Lage, konvertieren Sie die Zeichenfolge in ein Datum. Einige Implementierungen nicht fertig mit nichts, aber ein RFC-1123 - konforme Datum-strings (das ist alle, dass die Spezifikation erfordert).
Bearbeiten: Ein Kommentar auf diese Antwort besagt, dass Datum.analysieren nicht wieder NaN. Aber die spec sagt, dass analysieren, der eine Zahl zurückgeben sollte. Welche Nummer soll es zurück gegeben, wenn eine Zeichenfolge, die es nicht analysieren, da ein Datum? Es kann nicht 0 oder -1 oder einige andere solche "Schurkenstaaten" - Wert, da diese eine gültige Millisekunde offsets from Jan 1, 1970. Mozilla und IE gehen beide zurück NaN, das ist eine durchaus vernünftige Sache zu tun.
Während die spec nicht ausschließen, dass die Analyse eines Strings wie "2008-28-10" um ein gültiges Datum-es doesn ' T erfordern es. Ich noch nicht in alle Implementierungen, die nichts tun, mehr als in der spec. Daher "Okt 10, 2008", ist der nächste kriegt man den string oben analysieren richtig.
Versuchen Sie es. Geben Sie "2008-28-10", wie in der Frage und Prüfung mit isNaN.
Sorry, ich Tat 'Frage-Feld' Codierung und verwendet das falsche Datum-format. Sie hätte darauf hingewiesen, dass mein bestimmtes Datum.parse() Rückgabe eines Nan, obwohl.
Hmm... ich dachte, ich Tat. Aber ich schlage vor, Sie Bearbeiten Ihre Frage verwenden Sie eine gültige Datums-Zeichenfolge. Kann ich dann löschen Sie diese Antwort so, dass sich diese Frage beim Thema bleiben.
InformationsquelleAutor AnthonyWJones