NEUESTE BEARBEITUNG: 23.08.19
Die date-fns- Bibliothek funktioniert ähnlich wie moment.js , hat jedoch einen wesentlich geringeren Platzbedarf. Damit können Sie auswählen, welche Funktionen Sie in Ihr Projekt aufnehmen möchten, damit Sie nicht die gesamte Bibliothek kompilieren müssen, um das heutige Datum zu formatieren. Wenn eine minimale Bibliothek von Drittanbietern für Ihr Projekt keine Option ist, unterstütze ich die akzeptierte Lösung von Samuel Meddows ganz oben.
Die Geschichte unten bewahren, weil sie einigen Menschen geholfen hat. Aber fürs Protokoll ist es ziemlich hackig und kann ohne Vorwarnung brechen, ebenso wie die meisten Lösungen in diesem Beitrag
EDIT 07.02.2017
Eine einzeilige JS-Lösung:
tl; dr
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
edge, ff spätestens & todaysDate = "2/7/2017"
chrome return "funktioniert" * in IE10 +
Erläuterung
Ich fand heraus, dass IE10 und IE Edge die Dinge etwas anders machen. mit new Date(Date.now()).toLocaleString()
als Eingabe,
IE10 gibt zurück:
"Tuesday, February 07, 2017 2:58:25 PM"
Ich könnte eine große lange Funktion und FTFY schreiben. Aber du solltest moment.js wirklich für dieses Zeug verwenden. Mein Skript bereinigt dies lediglich und gibt Ihnen die erweiterte traditionelle US-Notation:> todaysDate = "March 06, 2017"
IE EDGE gibt zurück:
"2/7/2017 2:59:27 PM"
Natürlich könnte es nicht so einfach sein. Die Datumszeichenfolge von Edge enthält unsichtbare "•" Zeichen zwischen den einzelnen sichtbaren Zeichen. Wir werden jetzt nicht nur prüfen, ob das erste Zeichen eine Zahl ist, sondern auch die ersten drei Zeichen, da sich herausstellt, dass jedes einzelne Zeichen im gesamten Datumsbereich irgendwann ein Punkt oder ein Schrägstrich sein wird. Um die Dinge einfach zu halten, schieben Sie einfach die ersten drei Zeichen (winziger Puffer gegen zukünftige Spielereien) .slice () und suchen Sie dann nach Zahlen. Es sollte wahrscheinlich beachtet werden, dass diese unsichtbaren Punkte möglicherweise in Ihrem Code verbleiben können. Ich würde mich vielleicht damit befassen, wenn Sie größere Pläne haben, als nur diese Zeichenfolge in Ihre Ansicht zu drucken.
∴ aktualisierter Einzeiler:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
Das ist scheiße zu lesen. Wie wäre es mit:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
URSPRÜNGLICHE ANTWORT
Ich habe einen Einzeiler für Sie:
new Date(Date.now()).toLocaleString().split(', ')[0];
und [1]
wird Ihnen die Tageszeit geben.
var currentTime = new Date();