UI の post.created_at 日付が DB と一致しない

ユーザーのアクティビティフィードでは、投稿された日が表示されます:

ただし、データエクスプローラープラグインでこの投稿を表示すると、4月21日に作成されたことがわかります(4月20日ではありません)。

つまり、データベースでは4月21日に投稿が作成された一方、UIでは4月20日に投稿されたように表示されています。

なぜこれが重要なのか?
私たちは、訪問の連続記録(ストリーク)を追跡する独自機能を実装しています。たまに、ユーザーから「なぜストリークが途切れたのか」という問い合わせが寄せられます。今回の場合、データベース上では4月20日にユーザーのアクティビティが存在しなかったため、ストリークが途切れました。しかし、ユーザーの視点では、その日に投稿したと認識しています。

UIとデータベースで日付が異なる理由をご存知の方はいらっしゃいますか?

「いいね!」 2

データベースのタイムスタンプは UTC です(末尾の Z は 「ズールー時間」 を意味します)。UI のタイムスタンプは、ブラウザのローカルタイムゾーンで表示されます。これが不一致の原因でしょうか?

「いいね!」 7

ああ、なるほど。確かにその通りですね。投稿はUTCの真夜中頃で、私のブラウザ(EST)ではそこから4時間遅れて表示されるため、日付が4月20日になってしまいます。

誤解を招いてすみません!

@david さん、ありがとうございました。

「いいね!」 4