個人的にとても綺麗な書き方だと思ったので、ご紹介したくまとめました。
例えば年月日を、2019/3/22 ではなく、2019/03/22 としたい時があるかと思います。
要は、月や日が一桁の場合は頭に 0 をつけ、二桁だった場合はそのまま表示する場合です。
今回参考に…というか、まるっとご紹介させていただきたい記事はこちら。
JavaScriptでゼロ埋め処理 – Qiita
https://qiita.com/cress_cc/items/3e820fe1695f13793df3
この方も冒頭で紹介していましたが、私も今までは、for 文で一月・一日ずつチェックし、10 未満だったら 0 を付けるという処理を行っていました。
が、いかんせん面倒くさい…。
月だけならともかく、日も同じ処理を行うとなると、2つの値をチェックする必要があります。
が、紹介されていた書き方を使えばこんなにスタイリッシュになります。
// 今日の日付を取得 let today = new Date(); // 月、日をそれぞれゼロ埋め let year = today.getFullYear(); let month = ('0' + (today.getMonth()+1)).slice(-2); let day = ('0' + today.getDate()).slice(-2); // ログで確認 // 2019年3月22日の場合、2019/03/22 となります console.log(year + '/' + month + '/' + day);
ポイントは、.slice()
で、マイナス値を指定している点です。
slice メソッドに負の値が指定された場合、最後尾から文字列を取得できます。
今回は、-2 を指定しているので、最後尾から 2桁を取得しています。
そのため、一桁の月・日の場合は、頭に 0 が付いた文字列が変数に代入され、2桁の場合は一番上の桁である0は取得されず、そのままの値が代入されます。
for 文をぐるぐる回すより、はるかに綺麗な書き方ですね!
もっと早くに知りたかったし、もっと早くにこの書き方を思いつきたかった…!
以上、JavaScript で数値のゼロ埋め処理を行う方法についてでした。
私自身、とても助かった書き方なので、是非ご参考にしていただければと思います。