2017-03-15 8 views
0

私は「2017年3月15日5:06:16 PM」の日付を持っています。これをブラウザのタイムゾーンに変換する必要があります。これはJavaScriptの「Date」を使用していますが、 "03/15/2017、5:06:16 PM"形式に変更する必要があります。 "03/15/2017 5:06:16 PM"に変更する必要があります。Javaスクリプトの日付フォーマット

これはJavaスクリプトを使用してどのように実現できますか。

私が試みたJavaScriptの組み込み関数

(1)toISOString

(2)toLocalString

(3)にtoUTCString

はなく、運、私は標準がないように感じていませんjsメソッド。誰でも私に希望の形式に変更できるコードを提供できますか?

+0

あなたは本当に、momentjsライブラリを使用して、そのパワフルであなたが望むすべては一瞬の機能を実現することができます...で – Julo0sS

+0

のコメントを検討してくださいこれはうまくいかない場合がありますが、moment.jsはDateのすべてにとって非常に役立つライブラリです。 – Vic

+0

[JavaScriptで日付を書式設定するためのドキュメントはどこにありますか?](http://stackoverflow.com/questions/1056728/where-can-i-find-documentation-on-formatting-a-date-in) -javascript) – JJJ

答えて

0

あなたはカスタムの日付文字列の表示をしたいと、このようなmomentjsなどの追加ライブラリをロードしたくない場合は、単純に、文字列操作を使用することができ、さまざまな方法を使用する必要はありません。

var months = [ 'Jan', ... ]; 
var parts = Date.toString() // 3/15/2017, 5:06:16 PM 
      .split('/'); // [ "3", "15", "2017, 5:06:16 PM" ] 

console.log(months[ parts[ 0 ] ] + " " + parts[ 1 ] + ", " + parts[ 2 ]); 

これは間違いなく唯一の解決策ではありませんが、何かの表示形式を変更したいときはいつでも、文字列操作を使用できることを常に思い出させることができます。より意味的に正しい方法は、文字列の操作を行わずに、たとえば文字列の必要な部分にDate.getMonthを置くことです。

あなたはES6を使用している場合、あなたは非常にきれいな、それを行うことができます。

console.log(`${monthString} ${dayNum}, ${yearNum} ${hourNum % 12}:${leftPad(minuteNum,2)}:${leftPad(secondNum,2)} ${hourNum < 12 ? 'PM' : 'AM'} `); 
+0

これは間違いなくコードの標準を減らすでしょう、なぜ私はこれを使わないことにしたのですか? – whishky

+0

意味的に正しいコードを書いてかなり美しくするのはあなた次第です。しかし、これは最も賢明な方法です。ライブラリを使用したくない場合は、 – towc

+0

@whishkyライブラリを使用したくない場合は、この回答に類似した操作を行う必要があります。あなたが望むように日付をフォーマットする標準的な関数はありません。 – JJJ

関連する問題