0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

簡単メモ:Date.now()メソッドつまずいたこと。

Last updated at Posted at 2025-02-13

はじめに

気づいたら簡単なことだったのですが、さらっと流していたら、中々、曲者だったことです。

どんなことだったか

MYSQLで、日付フィールドを作成して、そこへDate.now()メソッドを使用して、ミリ秒単位のデータを保存しようとしました。
そしたら、中々、データが保存できなかったのです。
フィールドの構造は、dateフィールドとして、タイプはDateとしていました。
もしかしたら、このDateタイプかと思い、DateTimeに変えてみました。
しかし、それでも保存できません。これで、大分時間をつぶしました。

ちなみに、以前、日付のデータを保存していたphpファイルを探して、そのコードとテーブルの構造をよく見てみました。
すると、dateフィールドのタイプがbigint(20)で定義していました。

そうか、これかと納得しました。
念のため、Date.now()メソッドの仕様を確かめてみました。
すると、このメソッドは、1970年-01月-01日-0時:0分:0秒からのミリ秒を表しているとありました。例題でこの数値を見てみると、13桁の数値でした。相当大きい数値です。
そのために、bigint(20)としていたのかと思いだしました。

時間が経つと忘れているものです。

修正してみたら

それで、さっそく、テーブルのタイプをbigint(20)にしました。
これで、動作テストをしてみたところ、見事、日付を保存できました。

あとがき

気が付けば簡単なことですが、さらっと流すと思わないことで時間をつぶすことになります。備忘録ではないですが、過去に作成したコードを見返すことは、役に立つことが多いです。
これからも、うっかりミスはなくならないと思いますので、問題が起こった時の神頼みとして、過去のコードは見返すようにしたいと思います。

0
0
2

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?