So formatieren Sie ein JavaScript-date
Wie kann ich das format ein JavaScript-date-Objekt zu drucken, wie 10-Aug-2010
?
Wie üblich: Vorsicht vor DEM MONAT ist NULL-INDIZIERT ! So der Januar ist null nicht ein...
Hüten Sie sich auch davor,
Für die Formatierung von DateTimes in javascript verwenden Sie die
Sie können
Gehen durch alle Antworten und zu sehen, wie so viele Menschen Rollen die manuelle string-parsing für etwas, die sollte schon kommen, wie ein standard-Bibliothek in javascript...... javascript freaken saugt.
Hüten Sie sich auch davor,
myDate.getDay()
nicht mehr zurück die Tage der Woche, aber Lage der Wochentag im Zusammenhang mit der Woche. myDate.getDate()
gibt die Wochentag.Für die Formatierung von DateTimes in javascript verwenden Sie die
Intl.DateTimeFormat
Objekt. Ich beschreibe es in meinem Beitrag: Beitrag. Ich erstelle eine online-Lösung für Ihre Antwort, indem Intl.DateTimeFormat
Check OnlineSie können
toLocaleDateString
Gehen durch alle Antworten und zu sehen, wie so viele Menschen Rollen die manuelle string-parsing für etwas, die sollte schon kommen, wie ein standard-Bibliothek in javascript...... javascript freaken saugt.
InformationsquelleAutor leora | 2010-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die Datum.format library:
gibt:
dateformat auf npm
http://jsfiddle.net/phZr7/1/
Diese Lösung ist auch als npm-Paket: npmjs.com/package/dateformat
Es sind 14 offene Fragen mit dem obigen plugin. Auch habe ich einen gefunden 🙁
Ich bekomme
require is not defined
OP gefragt, für die JS-Lösung
InformationsquelleAutor RobertPitt
Wenn Sie benötigen, um schnell zu formatieren Sie Ihre Daten mit einfachen JavaScript, verwenden Sie
getDate
,getMonth + 1
,getFullYear
,getHours
undgetMinutes
:Oder, wenn Sie es brauchen, werden mit Nullen aufgefüllt:
Können Sie mir sagen, wie man format wie " Montag,23. März 2018??
siehe Vorherige Antwort: stackoverflow.com/a/34015511/4161032. Die
toLocaleDateString()
können das format der Datums mit lokalisierten Monat/Tag-Namen.Sie können auch die pad-Nullen mit
.toString().padStart(2, '0')
wenn nötig, das Jahr kann aufgefüllt werden, auf die gleiche Weise:
("000" + d.getFullYear()).slice(-4)
InformationsquelleAutor sebastian.i
Gut, was ich wollte, war zu konvertieren, das heutige Datum, um eine MySQL freundlich Datums-Zeichenfolge wie 2012-06-23, und verwenden Sie die Zeichenfolge als ein parameter in einer meiner Abfragen. Die einfache Lösung, die ich gefunden habe ist diese:
Beachten Sie, dass die oben genannte Lösung funktioniert nicht berücksichtigen Sie Ihre Zeitzone offset.
Könnten Sie in Erwägung ziehen mit dieser Funktion statt:
Diese geben Sie das korrekte Datum, in Fall, dass Sie dieser code ausgeführt um den start/Ende des Tages.
new Date(date + " UTC")
trick, um die Zeitzone, und können Sie beseitigen die setMinutes Linie. Mann, javascript schmutzig istnicht Y10K-kompatibel 🙁
Y10K kompatible version:
var today = new Date().toISOString().slice(0,-14)
🙂Oder wie diese
new Date().toISOString().split('T')[0]
new Date().toISOString().slice(0, 16).replace('T',' ')
zu ZeitInformationsquelleAutor simo
Wenn Sie bereits mit jQuery UI in Ihrem Projekt könnte man es so machen:
Einige datepicker-Datum-format-Optionen, um mit zu spielen sind verfügbar hier.
Es könnte sein, weil es könnte jemand gehören jQuery-UI nur für das Datum-format-Funktion, oder könnte es sein, dass der datepicker ist ein optionaler Teil der Bibliothek ist, aber wahrscheinlich ist es da zu hassen jQuery ist in Mode.
Ich glaube nicht, dass es möglich ist, ganz zu vermeiden, alle auf seltsame Entscheidungen, die jemand tun könnte, versehentlich oder durch Abwesenheit von Sinn.
Hassen jQuery ist in Mode? So ist zu Fuß rund um mit Ihrer Hose auf halbem Weg nach unten Ihre Beine, nehme ich an... das ist ziemlich viel, was Sie versuchen, um code ohne jQuery war wie bei den meisten JavaScript-Geschichte...
In jedem Fall ist dies eine hilfreiche und völlig vernünftige Antwort—wieder 70% der Webseiten nutzen jQuery. Es sollte nicht immer downvoted weil der Entwickler religiösen überzeugungen.
InformationsquelleAutor Dmitry Pavlov
Ich denke, Sie können einfach verwenden Sie die nicht-standard - Datum-Methode
toLocaleFormat(formatString)
formatString: Eine format-string im gleichen format erwartet
strftime()
Funktion in C.Referenzen:
Chrome hat .toLocaleString('en') - Methode. Wie es scheint, neue browser unterstützt das developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
Lesen Sie die Warnung hier: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
das wäre die beste Lösung, wenn jeder konnte f*in Umsetzung. verdammt, Sie ie/chrome
In der Tat. Vielleicht gab es eine gerechte Grund, nicht zu Folgen Mozilla ' s führen, aber die Tatsache, dass auch ES6 nicht eine standard-Funktion zeigt, dass es immer noch ein hacker-Sprache, nicht einen Entwickler der Sprache.
InformationsquelleAutor Sébastien
Plain JavaScript ist die beste Wahl für kleine onetimers.
Auf der anderen Seite, wenn Sie mehr Datum Zeug, MomentJS ist eine gute Lösung.
Zum Beispiel:
moment ist veraltet, verwenden Sie den luxon
InformationsquelleAutor Mite Mitreski
In modernen Browsern (*), können Sie genau dies tun:
Ausgegeben, wenn ausgeführt, die heute (Januar 24ᵗʰ, 2016):
(*) Nach MDN, "modernen Browsern" bedeutet, Chrome 24+ Firefox 29+, Internet Explorer 11, Edge 12+, Opera 15+ & Safari nightly-build.
Sie könnten dieser polyfill!
Das ist nicht einmal gelistet caniuse.com :/
InformationsquelleAutor John Slegers
Sollten Sie einen Blick auf date.js. Es fügt viele praktische Helfer für die Arbeit mit Datumsangaben, zum Beispiel in Ihrem Fall:
Erste Schritte: http://www.datejs.com/2007/11/27/getting-started-with-datejs/
Ich denke, ich habe derzeit immer eine Reihe von Datum.analysieren während lassen date = new date(fromString) hat mehr Funktionen. Leider, zu meiner überraschung toString scheint auch nur anzeigen, ein Verzug, ohne dass es der Interpretation des übergebenen Arguments für die Formatierung. Mit NodeJS 11+ toDateString ist eine kürzere Ausgabe, aber nicht die Formatierung. Alles, was ich sehe ist eine sehr wechselhafte toLocaleDateString
InformationsquelleAutor NiKo
@Sébastien -- alternative alle browser unterstützen
Dokumentation:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
Das ist wirklich schön, z.B.
new Date().toLocaleDateString("en-EN", {month: "short", weekday: "short", day: "2-digit", year: "numeric"})
zurück"Wed, Sep 06, 2017"
Es gibt genug gute browser-Unterstützung für diese.
InformationsquelleAutor user956584
Kann ich Holen Sie sich Ihre gewünschten format in einer Zeile mit keine Bibliotheken und keine modernen Methoden, nur regex:
Update: Wie @RobG darauf hingewiesen, daß die Ausgabe des Datums.der Prototyp.toString() ist von der Implementierung abhängig. So nutzen Sie mit Vorsicht, und ändern Sie wenn nötig für Ihren Implementierungen, wenn Sie diese Lösung verwenden. In meinen Tests funktioniert dies zuverlässig in Nordamerika, wo die gängigen Browser (Chrome, Safari, Firefox und IE) alle Rückkehr der gleiche string-format.
console.log(new Date().toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3'));
Ich bin damit einverstanden. Wenn das mein code, ich würde die meisten sicherlich auch einen Kommentar neben Ihr, erklärt, dass die regex und gibt ein Beispiel für den Eingang und den entsprechenden Ausgang.
InformationsquelleAutor JD Smith
Verwenden Sie eine ECMAScript Edition 6 (ES6/ES2015) Zeichenfolge-Vorlage:
Wenn Sie Sie brauchen, um das Trennzeichen:
InformationsquelleAutor vdegenne
Hier ist etwas code, den ich gerade geschrieben haben, behandeln Sie die Datum-Formatierung für ein Projekt an dem ich arbeite. Es ahmt die PHP-Datumsformatierung Funktionen auf meine Bedürfnisse anzupassen. Fühlen Sie sich frei, es zu benutzen, es ist nur die Erweiterung des bereits vorhandenen Date () - Objekt. Dies ist vielleicht nicht die eleganteste Lösung, aber es funktioniert für meine Bedürfnisse.
InformationsquelleAutor jmiraglia
OK, wir haben etwas namens Intl, die ist sehr nützlich für die Formatierung eines Datum in JavaScript in diesen Tagen:
Ihr Datum wie folgt:
Und wechseln Sie zu Datum mit new Date() wie folgt:
Und jetzt kannst du es formatieren wie du möchtest mit einer Liste der locales wie unten:
Wenn Sie genau möchten, das format, die Sie bereits erwähnt, können Sie tun:
Und das Ergebnis wird sein:
Weitere details über ECMAScript Internationalisierung API (Intl), besuchen hier.
InformationsquelleAutor Alireza
Wenn Sie mit jQuery UI in Ihrem code, gibt es eine eingebaute Funktion, die aufgerufen wird
formatDate()
. Ich benutze es auf diese Weise zu formatieren heutiges Datum:Können Sie sehen,viele andere Beispiele für die Formatierung von Datum in der jQuery UI Dokumentation.
InformationsquelleAutor webzy
Eine hilfreiche und flexible Möglichkeit zur Formatierung der DateTimes in JavaScript ist
Intl.DateTimeFormat
:Ergebnis Ist:
"12-Oct-2017"
Datum und Zeit-Formate angepasst werden kann mit der Optionen-argument.
Den
Intl.DateTimeFormat
Objekt ist ein Konstruktor für Objekte, die es ermöglichen, sensible Sprache Datum und Uhrzeit-Formatierung.Syntax
Parameter
locales
Optional. Ein string mit einer BCP-47-sprachtag, oder ein array von solchen Zeichenfolgen. Für die Allgemeine form und interpretation des Gebietsschemas argument, siehe Seite Intl. Die folgenden Unicode-Erweiterung, die Tasten sind zugelassen:
Optionen
Optional. Ein Objekt mit einigen oder allen der folgenden Eigenschaften:
localeMatcher
Die Gebietsschema-matching-Algorithmus zu verwenden. Mögliche Werte sind
"lookup"
und"best fit"
; der Standardwert ist"best fit"
. Weitere Informationen zu dieser option finden Sie unter der Seite Intl.Zeitzone
Die Zeitzone zu verwenden. Der einzige Wert-Implementierungen müssen erkennen, ist
"UTC"
; der Standardwert ist die Laufzeit die default-Zeitzone. Implementierungen können auch erkennen, die Namen der Zeitzonen der IANA time zone database, wie"Asia/Shanghai"
,"Asia/Kolkata"
,"America/New_York"
.hour12
Ob 12-Stunden-Zeit (im Gegensatz zu 24-Stunden-Zeit). Mögliche Werte sind
true
undfalse
; der Standardwert ist von der locale abhängig.formatMatcher
Das format-matching-Algorithmus zu verwenden. Mögliche Werte sind
"basic"
und"best fit"
; der Standardwert ist"best fit"
. Siehe die folgenden Abschnitte für Informationen über die Verwendung dieser Eigenschaft.Die folgenden Eigenschaften beschreiben die Datum-Zeit-Komponenten zur Verwendung in der formatierten Ausgabe und Ihre gewünschten Darstellungen. Implementierungen sind erforderlich, um mindestens die folgenden Teilmengen:
Implementierungen unterstützen kann andere Teilmengen und Anforderungen verhandelt werden wird, die gegen alle verfügbaren Teilmenge-Darstellung-Kombinationen zu finden, die am besten zu entsprechen. Zwei algorithmen sind verfügbar für diese Verhandlung und ausgewählt von den formatMatcher Eigenschaft: Eine vollständig angegebene
"basic"
Algorithmus und eine Implementierung abhängige "best-fit" - Algorithmus.Wochentag
Die Darstellung der Wochentag. Mögliche Werte sind
"narrow"
,"short"
,"long"
.ära
Die Darstellung der Epoche. Mögliche Werte sind
"narrow"
,"short"
,"long"
.Jahr
Die Darstellung des Jahres. Mögliche Werte sind
"numeric"
,"2-digit"
.Monat
Die Darstellung des Monats. Mögliche Werte sind
"numeric"
,"2-digit"
,"narrow"
,"short"
,"long"
.Tag
Die Darstellung des Tages. Mögliche Werte sind
"numeric"
,"2-digit"
.Stunde
Die Darstellung der Stunde. Mögliche Werte sind
"numeric"
,"2-digit"
.minute
Die Darstellung von minute zu minute. Mögliche Werte sind
"numeric"
,"2-digit"
.zweiten
In der Darstellung des zweiten. Mögliche Werte sind
"numeric"
,"2-digit"
.timeZoneName
Die Darstellung des Zeit-zone, name. Mögliche Werte sind
"short"
,"long"
.Der default-Wert für jedes Datum-Zeit-Komponente der Eigenschaft ist nicht definiert, aber wenn alle Komponenten-Eigenschaften nicht definiert sind, dann Jahr, Monat und Tag ausgegangen werden
"numeric"
.Überprüfen Sie Online
Mehr Details
InformationsquelleAutor Iman Bahrampour
Einer JavaScript-Lösung ohne Verwendung externer Bibliotheken:
InformationsquelleAutor Prasad DLV
Dies ist, wie ich umgesetzt habe, die für meine npm plugins
Datum util
Diese hat einen bug: Monatsnamen ersetzt werden zuerst, dann der name des Monats wird ebenfalls ausgewechselt werden. Zum Beispiel
March
wird3arch
mit diesem code.Ändern Sie Zeile für
'M'
zuformat = format.replace("M(?!M)", (dt.getMonth()+1).toString());
und legen Sie es über der Zeile mit'MMMM'
InformationsquelleAutor Amit Kumar Gupta
InformationsquelleAutor zest
Sugar.js hat hervorragende Erweiterungen für das Date-Objekt, einschließlich Datum.format Methode.
Beispiele aus der Dokumentation:
InformationsquelleAutor hasen
Fügen Sie die jQuery UI plugin auf Ihrer Seite:
wenn du schon mit Jquery UI in Ihrem Projekt, könnte es ein guter Ansatz,aber es scheint, Sie können nur das Datum der Teil , keine Stunden, Minuten oder Sekunden
warum nicht simple jquery? $.format.Datum(new Date(), 'yyyy-MM-dd HH:mm:ss')
InformationsquelleAutor Thulasiram