【发布时间】:2016-01-22 22:48:44
【问题描述】:
我正在创建一个 angular + firebase 食品日记,并且我正在对日期以及如何最好地存储它们进行逻辑冻结。我的数据结构如下:
{
"uid": {
"profile": {
"name": "name"
},
"journal": {
"date1": {
"breakfast": "",
"lunch": "",
"dinner": ""
},
"date2": {
...
}
}
}
}
显然,我只想设置一次“日期”值,并且能够设置它并从任何时区检索它。我最初将“日期”键设置为一个四舍五入的时间戳,小时、分钟、秒都设置为 0。但这在时区问题的 b/c 中不起作用。
然后我决定只使用 dateObject.toDateString() 作为唯一的“日期”键。这很好,直到我意识到这样做会限制我查询 firebase 的方式。
我希望能够在几天内查询 firebase 并维持秩序。例如,假设我想查看“2015 年 1 月 21 日星期三”到“2015 年 1 月 29 日星期四”的条目。获取那些日子的数据需要单独的查询和 firebase 请求。如果我存储了一个数字,我可以使用 firebase 的范围查询; startAt()、endAt() 和 equalTo()。
我当前的解决方案/想法是存储一个由日期对象的 4 位数年份、2 位数月份和 2 位数日期组成的 8 位数数字,其中“Wed Jan 21 2015”将存储为 20150021 和“Thu Jan 29 2015 " 为 20150029。然后只需解析数字客户端以创建本地日期对象。
但似乎我要么忽略了某些事情,要么过度思考了某些事情。有没有更好的方法来做到这一点?
【问题讨论】:
-
下面的快速回答。但是,如果您提供您拥有的代码以及它的问题所在,那么提供帮助会容易得多。见stackoverflow.com/help/mcve
标签: javascript angularjs firebase