vueの画面を作成していたときに、
DateオブジェクトのgetFullYear メソッドの使い方に慣れず
苦戦したことがありましたので、メモ程度に書きたいと思います!
目次
事象説明
getFullYear メソッドについて
勘違い
getFullYearメソッドという名称から
Year(年)が返ってくるのだから数字4桁の戻り値であることを期待していました。
6桁でも返ってくる事象があり、処理の連携がうまくいかないバグがありました。。。
・6桁で返ってきたときに入力していたコード
sample1.ts
const testDate = new Date('202301') //2023年1月1日の情報をもつオブジェクトを作成したつもり
console.log(testDate.getFullYear())
========
コンソール出力
202301
間違ってた原因
Dateオブジェクトのコンストラクタの引数である日時文字列の形式がよろしくなかったこと。
コンストラクタの引数が文字列の6桁の場合、6桁年としてオブジェクトが生成されてしまいます。
上記の例では202301年1月1日として生成されていました。
・参考
解決策
単に2023年1月1日として生成したいのであれば、
以下の生成方法があります。
sample2.ts
//2023年1月1日として生成
const testDate = new Date('2023-01')
console.log(testDate.getFullYear())
========
コンソール出力
2023
まとめ
年は常に4桁であるという勘違いから生じました。
コンストラクタ引数の仕様を正しく理解しながらプログラムを作っていきたいと思います!