我在firebase中将DateFrom字段存储为字符串"dd/mm/YY"(即20/05/2022)
当我尝试排序这个时:
useEffect(() => {
const unsubscribe = firebase
.firestore() //access firestore
.collection("trips")
.where("User", "==", user1)
.orderBy("DateFrom", "asc")
.onSnapshot(snapshot => {
const listItemsTrips = snapshot.docs.map(doc => ({
id: doc.id,
...doc.data()
}));
setItems(listItemsTrips);
});
return () => unsubscribe();
}, []);
return items;
在大多数情况下返回正确的结果,但是分配给21/05/2023的任何内容仍然会出现在20/05/2022日期之后。如何按日期对字符串字段排序?(通过firebase控制台,对DateFrom字段进行排序也按此顺序显示)
它看起来只是按天排序&月和忽略年值?
您需要在firebase中将日期保存为时间戳。例子:
yourRef
.collection('you_colletcyion')
.add({DateFrom: firebase.Timestamp.now()})
const unsubscribe = firebase
.firestore() //access firestore
.collection("trips")
.where("User", "==", user1)
.orderBy("DateFrom", "asc")
然后你可以通过格式化来显示日期。moment.js
:
moment(user.DateFrom).locale('pt-br').format('LLL')