2016-08-30 4 views
0

Momentan mache ich einen Rest-Aufruf an SharePoint mit JavaScript Rest API. Ich erhalte ein Änderungsdatum, das im folgenden Format vorliegt: "2016-08-27T17:40:09Z", von dem, was ich gelesen habe, ist dies ein Problem, mit dem viele Entwickler ein Problem haben.Formatieren eines Datums aus Date.parse (dateString) in einem anderen Format

Also entschied ich mich, weiter zu gehen und die Date.parse (dateString) -Methode zu verwenden, um das schrullige Datumsformat zu konvertieren, und jetzt bekomme ich Sat Aug 27 2016 13:40:09 GMT-0400 (Eastern Daylight Time).

Nun ist dies etwas, das verstanden werden kann, aber ich suche nicht nach diesem, ich suche nach dem folgenden Format Month\Date\Year Hour:Minute. Ich habe die Dokumentation gelesen, aber ich habe noch nichts gefunden.

+1

Verwenden [moment.js] (http://momentjs.com/) –

+0

Diese Frage ziemlich regelmäßig gefragt zu sein scheint: https://stackoverflow.com/questions/8362952/javascript -date-output-formating https://stackoverflow.com/questions/3066586/get-string-in-yyyymmdd-format-from-js-date-object –

+0

Die Verwendung von Schrägstrichen für das Datumstrennzeichen ist ungewöhnlich, häufiger ist es Schrägstrich: m/d/y. – RobG

Antwort

1

var d = new Date('2016-08-27T17:40:09Z'), 
 
    dFormatted = [d.getMonth() + 1, d.getDate(), d.getFullYear()].join('\\') + ' ' + [d.getHours(), d.getMinutes()].join(':'); 
 

 
console.log(dFormatted);

+0

Sie haben Recht, also ist Ihre Antwort korrigiert, aber ich ging mit einer anderen Methode. – EasyE

0

Wenn Ihr Format ist sehr einzigartig, dann müssen Sie Ihren eigenen Formatierer machen:

function toMyFormat(time) { 
 
    var d = new Date(time); 
 
    return d.getMonth() + '\\' + d.getDate() + '\\' + d.getFullYear() + ' ' + d.getHours() + ':' + d.getMinutes(); 
 
} 
 
console.log(toMyFormat('2016-08-27T17:40:09Z'));

Sie können jedoch das Glück haben, ein zu finden localeString format das zu Ihnen passt:

var d = new Date('2016-08-27T17:40:09Z'); 
 

 
console.log(d.toLocaleString('en-US')); 
 
console.log(d.toLocaleString('da-DK')); 
 
console.log(d.toLocaleString('de-GE'));

+0

Vielen Dank, ich war glücklich genug, sehr geschätzt. – EasyE

+1

@EasyE der 'd.getMonth()' gibt den Monat zurück (von 0-11), also ist diese Antwort falsch .. Prüfe meine Lösung –

+2

* toLocaleString * ist implementationsabhängig und liefert verschiedene Ergebnisse in verschiedenen Browsern (nicht zu erwähnen das 'en-US' ist kein" locale ", es ist eine Sprache). Obiges hängt von der Unterstützung der ECMA-402-Internationalisierungs-API ab, die nicht von allen verwendeten Browsern unterstützt wird. – RobG

Verwandte Themen