投稿日:2024/12/07 最終更新日:2024/12/07
JSで簡単に「年-月-日 時:分:秒」を取得する方法
結論
2行で取得できます。
const getDay = new Date().toLocaleDateString('sv-SE');
const getTime = new Date().toLocaleTimeString('ja-JP', { hour12:false });
解説
new Dateについて
new Date
は指定した日時を表す日付オブジェクトを生成します。
引数を指定しない場合はインスタンス作成時点の日時を取得してくれます。
const now = new Date();
console.log(now);
// Sat Dec 07 2024 18:37:37 GMT+0900 (日本標準時)
toLocaleDateStringについて
toLocaleDateString
は日付オブジェクトの日付部分をもとに可読性のある形式に変換するためのメソッドです。
わかりやすく言えば見やすい日付に変換するということです。
なので、先ほどのnew Dateと合わせて使用してみます。
const now = new Date();
const readaleDate = now.toLocaleDateString('sv-SE');
console.log(readaleDate);
// 2024-12-7
ちなみに「sv-SE」はスウェーデンのロケールのようなのですが、日付の表記に関する規格であるISO 8601に近い形式で出力されるためよく使われるようです。
これで日付部分の用意は完了です。
toLocaleTimeStringについて
今度はtoLocaleTimeString
で時間を取得します。
toLocaleTimeString
は日付オブジェクトの時間部分をもとに可読性のある形式に変換するためのメソッドです。
これも先ほどのnew Dateと合わせて使用します。
const getTime = new Date().toLocaleTimeString('ja-JP', { hour12:false });
console.log(getTime);
// 21:53:25
第2引数の{ hour12:false }
は12時間表記(午前・午後)をfalseにするオプションですがあってもなくても良さそうです。
オプションでは他にタイムゾーンの設定なども可能です。
まとめ
PHPだと簡単に日付取得が可能ですがJSでは厄介だなと思っている中で一番簡単な取得方法かと思います。
もし他に楽な方法を知っている人がいればぜひ教えてください。
参考資料
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/Date