2016-07-27 5 views
1

Was wäre der beste Weg, um ein Datum wie zu generieren: 27.07.2016 16:53:18 in Javascript?Javascript - der beste Weg, um Datum wie 27.07.2016 zu generieren 4:53:18 PM

Ich dachte über die Verkettung einer Zeichenfolge, aber ich habe Probleme zu finden, wie Sie den Monat in dem bestimmten abgekürzten Format (Juli) erhalten.

Vielen Dank im Voraus! :)

+1

Haben Sie versucht, die eingebaute in 'Date' Objekt? – gcampbell

+0

Ich denke, Verkettung ist der beste Weg, hier zu gehen! –

+0

@gcampbell: Ja, aber es scheint eine getMonth() -Methode zu geben, die den Monat als int (dh: 1 für Februar) zurückgibt, aber ich suche einen abgekürzten Monat wie Jul, und ich bin nicht sicher, wie bekommen Sie das – Rose

Antwort

4

Für Browser Date.prototype.toLocaleString() unterstützt:

var month = []; 
 

 
for(var n = 0; n < 12; n++) { 
 
    month[n] = (new Date(0, n + 1)).toLocaleString("en", {month: "short"}); 
 
} 
 

 
console.log(month);

Oder mit Intl.DateTimeFormat():

var month = [], 
 
    intl = new Intl.DateTimeFormat("en", {month: "short"}); 
 

 
for(n = 0; n < 12; n++) { 
 
    month[n] = intl.format(new Date(0, n + 1)); 
 
} 
 

 
console.log(month);

Hinweis: new Date(0, n + 1) ist ein Datum im Jahr 1900 zu erzeugen, die in Ordnung ist, da wir nur über den Monat kümmern.

Schließlich sollte dies ziemlich nahe an der endgültigen erwartete Ausgabe:

var intl = new Intl.DateTimeFormat(
 
    "en-US", 
 
    { 
 
    month : "short", 
 
    day : "numeric", 
 
    year : "numeric", 
 
    hour : "numeric", 
 
    minute : "numeric", 
 
    second : "numeric" 
 
    } 
 
); 
 

 
console.log(intl.format(Date.now()));

+0

@ Arnauld: Danke! Ich wusste nicht, dass du das kannst :) Das ist großartig. – Rose

0

Um die abgekürzte Monat erhalten Sie den folgenden Codeausschnitt verwenden können:

var monthShortNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", 
    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 
]; 

function monthShortFormat(d){ 
    var t = new Date(d); 
    return t.getDate()+' '+monthShortNames[t.getMonth()]+', '+t.getFullYear(); 
}