我正在创建一个有角度的+ firebase食品杂志,我正在对有关日期以及如何最好地存储它们进行逻辑冻结。我的数据结构如下:
{
"uid": {
"profile": {
"name": "name"
},
"journal": {
"date1": {
"breakfast": "",
"lunch": "",
"dinner": ""
},
"date2": {
...
}
}
}
}
显然,我只想设置一次“日期”值,并能够设置它并从任何时区检索它。我首先将'date'键设置为四舍五入的时间戳,小时,分钟,秒都设置为0.但是这不是时区问题的b / c。
然后我决定使用dateObject.toDateString()作为唯一的'date'键。这很好,直到我意识到这样做会限制我查询firebase的方式。
我希望能够在几天内查询firebase以及维护订单。例如,假设我要查看“2015年1月21日星期三”到“2015年1月29日星期四”的条目。获取这些天的数据需要单独的查询和firebase请求。如果我存储了一个数字,我可以使用firebase的范围查询; startAt(),endAt()和equalTo()。
我目前的解决方案/想法是存储由日期对象的4位数年份,2位数月份和2位数日期组成的8位数字,其中“2015年1月21日星期三”将存储为20150021和“2015年1月29日星期四“如20150029.然后只需解析数字客户端以创建本地日期对象。
但似乎我要么过分看东西,要么过度思考。有没有更好的方法来实现这一目标?
答案 0 :(得分:2)
以 <style>
input[value="ChunkRed"]:checked ~ input[type="text"]{
color:red!important;
}
input[value="DecoBlue"]:checked ~ input[type="text"]{
color:blue!important;
}
input[value="Animals"]:checked ~ input[type="text"]{
color:green!important;
}
input[value="ElegantRed"]:checked ~ input[type="text"]{
color:purple!important;
}
input[value="Funky"]:checked ~ input[type="text"]{
color:yellow!important;
background:black;
}
input[value="TapePunch"]:checked ~ input[type="text"]{
color:white!important;
background:blue;
}
</style>
<form>
<h1>Stack - pure css</h1>
<h2>Please select a font and enter a message:</h2><br>
<input type="radio" name="font" value="ChunkRed"> Chunk Red
<input type="radio" name="font" value="DecoBlue" checked> Deco Blue
<input type="radio" name="font" value="Animals"> Animals
<input type="radio" name="font" value="ElegantRed"> Elegant Red
<input type="radio" name="font" value="Funky"> Funky
<input type="radio" name="font" value="TapePunch"> TapePunch<br><br>
<input type="text" name="message" required size="50" value="The Quick Brown Fox Jumps Over the Lazy Dog" autofocus>
<input type="submit" value="Send">
</form>
格式存储日期相当常见。它的优点是结果值在数值上具有可比性,即明天的数量大于今天的数值。
更常见的替代方案是自纪元以来存储在&#34;(毫秒)秒内#34;。这不仅在数值上具有可比性,而且也是yyyyMMdd
返回的内容,可以传递给Date.now()
。