Weiß jemand, wie ich einen MySQL- datetime
Datentypwert nehmen YYYY-MM-DD HH:MM:SS
und ihn entweder analysieren oder konvertieren kann, um in der JavaScript- Date()
Funktion zu funktionieren, zum Beispiel: - Datum ('JJJJ, MM, TT, HH, MM, SS);
Danke dir!
Antworten:
Einige der hier gegebenen Antworten sind entweder zu kompliziert oder funktionieren einfach nicht (zumindest nicht in allen Browsern). Wenn Sie einen Schritt zurücktreten, können Sie sehen, dass der MySQL-Zeitstempel jede Zeitkomponente in derselben Reihenfolge wie die vom
Date()
Konstruktor benötigten Argumente enthält .Alles, was benötigt wird, ist eine sehr einfache Aufteilung der Zeichenfolge:
Faire Warnung: Dies setzt voraus, dass Ihr MySQL-Server UTC-Daten ausgibt (dies ist die Standardeinstellung und wird empfohlen, wenn die Zeichenfolge keine Zeitzonenkomponente enthält).
quelle
var d = new Date("2010-06-09 13:12:01");
. Interessanterweise hat Chrome damit kein Problem.new Date(Date.UTC(...))
ist besser, aber das setzt voraus, dass mysql utc verwendet ... so oder so muss es sein zuvor betrachtet kann dies als richtige Antwort angesehen werden.Um die ausgezeichnete Antwort von Andy E zu ergänzen, könnte eine Funktion der allgemeinen Verwendung sein:
Auf diese Weise können Sie bei einem MySQL-Datum / einer MySQL-Uhrzeit im Formular
"YYYY-MM-DD HH:MM:SS"
oder sogar in der Kurzform (nur Datum)"YYYY-MM-DD"
Folgendes tun:quelle
new Date(Date.UTC(...))
andere Weise verwenden, die Antwort ist bis zu 24 Stunden falsch ...Ich glaube, ich habe einen einfacheren Weg gefunden, den niemand erwähnt hat.
Eine MySQL DATETIME-Spalte kann durch Folgendes in einen Unix-Zeitstempel konvertiert werden:
Wir können ein neues JavaScript-Datumsobjekt erstellen, indem wir den Konstruktor verwenden, der seit der Epoche Millisekunden benötigt. Die Funktion unix_timestamp gibt Sekunden seit der Epoche zurück, daher müssen wir mit 1000 multiplizieren:
Der resultierende Wert kann direkt verwendet werden, um ein korrektes Javascript-Datumsobjekt zu instanziieren:
Hoffe das hilft.
quelle
Ein Liner für moderne Browser (IE10 +):
Und nur zum Spaß, hier ist ein Einzeiler, der in älteren Browsern funktioniert (jetzt behoben):
quelle
In neueren Versionen von JavaScript wird ein ISO8601-formatiertes Datum gelesen. Sie müssen also nur den Leerzeichen in ein 'T' ändern und Folgendes tun:
quelle
Um die Lösung von Marco noch weiter zu verbessern. Ich habe einen Prototyp direkt für das String-Objekt erstellt.
Auf diese Weise können Sie direkt zu:
quelle
Es gibt einen einfacheren Weg, SQL-Zeitstempel-String:
Das Format, das dem Zeitstempel für Date () am nächsten kommt, ist das folgende. Ersetzen Sie daher das Leerzeichen für "T":
Erstellen Sie dann das Datumsobjekt:
Ergebnis wäre das Datumsobjekt:
quelle
Aus Andys Antwort für AngularJS - Filter
quelle
quelle
Zuerst können Sie dem Date-Objekt (der Klasse) von JavaScript die neue Methode 'fromYMD ()' zum Konvertieren des YMD-Datumsformats von MySQL in das JavaScript-Format geben, indem Sie das YMD-Format in Komponenten aufteilen und diese Datumskomponenten verwenden:
Jetzt können Sie Ihr eigenes Objekt definieren (Funktion in der JavaScript-Welt):
und jetzt können Sie einfach ein Datum aus dem MySQL-Datumsformat erstellen.
quelle
Sie können den Unix-Zeitstempel verwenden, um Folgendes zu steuern:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
Holen Sie sich dann die epoch_time in JavaScript, und es ist eine einfache Sache von:
var myDate = new Date(epoch_time * 1000);
Das Multiplizieren mit 1000 ist darauf zurückzuführen, dass JavaScript Millisekunden dauert und UNIX_TIMESTAMP Sekunden angibt.
quelle
Eine schnelle Suche in Google lieferte Folgendes:
Quelle: http://snippets.dzone.com/posts/show/4132
quelle
Warum nicht:
quelle