かとのぼのマイコード・マイライフ

ウェブサービス開発者のブログ

JavaScriptで今日の0時を取得し、FireStoreのTimestampでその時間以降のデータを取得する

f:id:katonobo:20190502112425p:plain

FirestoreのTimestamp

FirebaseのFirestoreには、データ型にtimestampがあります。このタイムスタンプを使えば時間を並び順にしたり、特定の時間以降、以前のデータを取得することができます。

使い方はこちらの記事が参考になります。

Firestore で いいね順(Score順)Sort + Paging するポイント - Qiita

 

JavaScriptのnew Date()を操作する

今作っているサイトで、JavaScriptで、当日の0時以降のデータを取得したいニーズがありました。JavaScriptで現在のタイムスタンプを取得する時は「new Date()」を使いますが、細かい時間までセットで付いてきます。

当日の0時ちょうどを取得するには、以下の記事が参考になります。

どうしても「今日の0時」が欲しかった - Qiita

 

Vue.jsとFirebaseとJavaScriptで実装

Vue.jsで、当日の0時以降のデータを取得するために今回作成したサンプルコードです。

created() {
var today = new Date();
today.setHours(0, 0, 0, 0);
firebase.firestore().collection('hoge').orderBy('time', 'asc').startAt(today).limit(10)
.get().then(snapshot => {
snapshot.forEach(doc => {
var data = doc.data()
console.log(data)
})
});
}