2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

javascript new Date('2000-05-25')は日本時間の朝9時

Last updated at Posted at 2024-06-07

1. はじめに

知っておかないと怖いなぁと思ったことを記事にしました。

2. Javascript の new Date()

テーブルやローカルストレージに日付のデータを格納するとき、文字列で2000/05/252000-05-25で格納したりするときがありますよね。

このデータをDate型で扱いたいとき

dateString = db.getDate();
date = new Date(dataString);

ってしてませんか?コレ実は怖いんです。

3. 実行結果

まずは2000/05/25を確認しましょう。

date = new Date(`2000/05/25`);
console.log('date=' + date.toLocalString());

きっと

date=2000/5/25 0:00:00

と出力されるでしょう。想定どおりですよね?

次に、2000-05-25を確認しましょう。

date = new Date(`2000-05-25`);
console.log('date=' + date.toLocalString());

以下のように出力されます。

date=2000/5/25 9:00:00

朝9時です。想定どおりでしょうか?

4. こんなバグに

2000-05-25の表示形式の文字列をnew Date()で変換した場合、朝9時になるって知っていました?

知っておかないと

  • カレンダーに朝9時の日付をセットしてしまう
  • 現在日時と朝9時の日時を比較してしまう

など、バグを埋め込んでしまいますよ。
怖いと思った方は気をつけましょう。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?