serverTimestampで保存された日付は複数のメタデータを保有しているため、そのまま日付として扱うことはできません。toDate()で変換するだけですが、備忘録としてメモしておきます。
実現したいこと
- firebaseに保存されたタイムスタンプの時刻と現在の時刻を比較して24時間以内かどうかを判定する
方法
serverTimestampのデータ(ここでは、postに保存されているupdatedAt)を日付データに変換して、時間単位に調整することで時間判定を行います。
const now = new Date();
const then = post.updatedAt.toDate();
const msBetweenDates = Math.abs(then.getTime() - now.getTime());
const hoursBetweenDates = msBetweenDates / (60 * 60 * 1000);
if (hoursBetweenDates < 24) {
console.log("within 24 hours")
}
まとめ
firebaseの日付データの形式がよく分かっていなかったので、日付データへの変換だけが肝でした。
この記事にコメントする
このサイトはreCAPTCHAとGoogleによって保護されています。プライバシーポリシーと利用規約が適用されます。