FirebaseのTimestampを現在の時刻と比較(24時間以内)する方法

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の日付データの形式がよく分かっていなかったので、日付データへの変換だけが肝でした。

参考

Check if a Date is within 24 hours in JavaScript

ー この記事をシェアする? ー

この記事にコメントする

このサイトはreCAPTCHAとGoogleによって保護されています。プライバシーポリシー利用規約が適用されます。