[解決済み] JavaScriptの日付の書式設定方法
2022-03-16 13:48:07
質問内容
JavaScript で、日付オブジェクトを次のように表示するにはどうしたらよいでしょうか。
10-Aug-2010
?
解決方法は?
カスタム区切りの日付フォーマットの場合、日付(または時間)を取り出す必要があります。
コンポーネントから
DateTimeFormat
オブジェクト(これは
ECMAScript 国際化 API
を作成し、手動で文字列
を、必要なデリミターで指定します。
これを行うには
DateTimeFormat#formatToParts
. あなたは
配列の再構築を行いますが、これは理想的ではありません。
ロケールを使用します。
{ // example 1
let f = new Intl.DateTimeFormat('en');
let a = f.formatToParts();
console.log(a);
}
{ // example 2
let f = new Intl.DateTimeFormat('hi');
let a = f.formatToParts();
console.log(a);
}
より良い方法は、フォーマット配列と結果の文字列を対応させることです。
function join(t, a, s) {
function format(m) {
let f = new Intl.DateTimeFormat('en', m);
return f.format(t);
}
return a.map(format).join(s);
}
let a = [{day: 'numeric'}, {month: 'short'}, {year: 'numeric'}];
let s = join(new Date, a, '-');
console.log(s);
の部分を抜き出すこともできます。
DateTimeFormat
を使用して、1つ1つ
DateTimeFormat#format
ただし、この方法を使う場合、3月時点では
2020年、そこには
バグ
ECMAScript の実装で
分と秒の先頭にゼロを付ける(このバグは、このアプローチで回避できる
となります。)
let d = new Date(2010, 7, 5);
let ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d);
let mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d);
let da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d);
console.log(`${da}-${mo}-${ye}`);
日付や時刻を扱う場合、通常はライブラリ (例. moment.js , ルクソン というのも、この分野には多くの複雑な問題が隠されているからです。 の分野です。
上記のソリューションで使用されているECMAScript国際化APIは には対応していません。 IE10で ( 0.03% 2月の世界ブラウザシェア 2020).
関連
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
vueのプロジェクトでモックを使用する方法を知っていますか?
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fetch ネットワークリクエストラッパーの説明例
-
要素ツリー制御によるvueTreeテーブル
-
jsを使った簡単な照明スイッチのコード
-
Vueのクラススタイルの使い方の詳細
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み] テスト
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules