我认为像2011-01-26 21:41:09 +0000
这样的UTC时间字符串,如果在视图键中使用,它们可以正确排序,但存储时区(例如2011-01-26 16:41:09 -0500
)可以使文档更易读。从可读性角度来看,将日期转换为时期整数似乎是最不吸引人的选择,但也许对于性能来说最好(或者有什么区别吗?)。这里推荐采用什么做法?
时间是一维的。时间戳加时区是二维的,描述了一个时间点和位置。Couch视图是一维的(但不包括GeoCouch插件),因此将数据存储在通用时区(UTC)中是明智的选择。
可能最具未来性的格式是按时间顺序自然排序的字符串。JSON2输出的可能是最方便的此类格式:
> a = new Date();
Thu Jan 27 2011 18:40:52 GMT+0700 (ICT)
> JSON.stringify(a)
"2011-01-27T11:40:52.280Z"
Math.round(new Date().getTime()/1000)
对我来说非常好用。我喜欢使用自纪元以来的毫秒数。您可以通过以下方式计算出:
new Date().valueOf()
你可以使用以下代码通过毫秒数创建一个新的日期对象:
var milliseconds = new Date().valueOf();
var date = new Date(milliseconds);