JavaScriptでゼロパディングを行う

JavaScriptゼロパディング(数値のゼロ埋め)した文字列を作成する方法です。
次のような書式でゼロパディングした文字列が作成できます。

('0' + 数値).slice(-2);

サンプル1: 日付文字列作成

const datetime = new Date();
const datetimeStr = [datetime.getFullYear(), ('0' + (datetime.getMonth() + 1)).slice(-2), ('0' + datetime.getDate()).slice(-2)].join('/');
console.log(datetimeStr); // "2022/04/22"

複数桁に対応したい場合は次のようにします。'000'の部分を最大桁数分用意しておきます。

const zeroPadding = (t, n) => ('000' + t).slice(-n);

サンプル2: 日付時刻文字列作成

const zeroPadding = (t, n) => ('000' + t).slice(-n);

const now = new Date();
const timestamp = now.getFullYear() +
  zeroPadding(now.getMonth() + 1, 2) +
  zeroPadding(now.getDate(), 2) +
  zeroPadding(now.getHours(), 2) +
  zeroPadding(now.getMinutes(), 2) +
  zeroPadding(now.getSeconds(), 2) +
  zeroPadding(now.getMilliseconds(), 3);
console.log(timestamp); // "20220422032324876"

String.prototype.padStart()を使う

文字列であれば、padStart()で簡単にゼロパディングできます。

const datetime = new Date();

let month = new String(datetime.getMonth() + 1);
console.log(month.padStart(2, '0'));

let milliseconds = new String(datetime.getMilliseconds()); // "5"
console.log(milliseconds.padStart(3, '0')); // "005"
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です