LoginSignup
0
1

More than 1 year has passed since last update.

DateオブジェクトのgetFullYear() メソッドで6桁の数字が返ってくる

Posted at

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桁であるという勘違いから生じました。
コンストラクタ引数の仕様を正しく理解しながらプログラムを作っていきたいと思います!

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1