APIや関数を呼び出す時に日付を常に2桁の文字列で渡さなければいけない場合があり、1月や12月では1と12で桁数が異なってしまうため、桁数をあわせるために0を追加しなければならことがありました。その時に調べたことを備忘録として残します。
ちなみに0を追加することをゼロパディングといいます。以下記事では任意の桁数に0を追加するサンプルコードがあるので気になったら読んでいただければと思います。
日付の桁数が1桁の時に0を追加して2桁にする方法
月や日の文字列の長さ(桁数)を調べて1桁だった場合に0を追加します。
日付が数値の場合は「数値.toString()」で文字列に変換し桁数を調べます。
シンプルなサンプルコード
let month = 2;
// 桁数が1桁だった場合
if (month.toString().length < 2) {
month = 0 + month.toString();
}
console.log(month); // 02
調べることが多い場合はif文の箇所を関数にした方が呼び出しやすそうです。
関数を使ったサンプルコード
// 桁数が1桁だった場合2桁にする関数 adjustDate
const adjustDate = (num) => {
// 桁数が1桁だった場合
if (num.toString().length < 2) {
num = 0 + num.toString();
return num;
}
};
let month = 3;
let date = 9;
month = adjustDate(month);
date = adjustDate(date);
console.log(month); // 03
console.log(date); // 09
調べることが多い場合はif文の箇所を関数にした方が呼び出しやすそうです。
おわり
ゼロパディングのことをすっかり忘れていたので、以前書いた記事(ゼロパディングとは)を読むこともなく時間を消耗しました。
またスプレッドシートから読み込んだ値の桁数を揃えるために調べたのですが、スプレッドシートの書式側で勝手に日付に変換されてしまっていたため、1桁を2桁にする手間が発生していたのですがよく考えればスプシ側の書式を書式なしに戻せばこんな面倒なことをしなくて済んだなと作り終わってから気づきました。