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"