JavaScriptのDateオブジェクトのUTCトラップ:日本でデータが欠損

2025-07-30

一見シンプルなJavaScriptの日付フィルターが、日本のユーザーの午前9時前にバックエンドデータが欠損する原因となりました。なぜなら、`new Date('YYYY-MM-DD')`はUTCの真夜中の日付オブジェクトを作成し、日本(UTC+9)では午前9時になるためです。そのため、「1月1日より大きい」は実際には「1月1日午前9時より大きい」を意味していました。修正は、UTCのデフォルトを避けるために、明示的に時間を真夜中に設定することでした。

開発 日付