0

我在我的 Rails4 应用程序中使用 Elasticsearch 和 Tire 并且对整个日期的事情感到迷茫。

创建了一个方面:

facet('timeline') { date   :created_at, :interval => 'day' }

这看起来很好,直到我抓取数据并最终得到:

= @device.facets["timeline"]
> {"_type"=>"date_histogram", "entries"=>[{"time"=>1361232000000, "count"=>1}, {"time"=>1361318400000, "count"=>14}, {"time"=>1361404800000, "count"=>1}

我尝试在映射中格式化日期,但这是不对的:

indexes :created_at, type: 'date', :date_formats => 'basic_date'

我已经阅读了有关 yoda time 等的文档,但我不知道如何将其格式化为合理的格式。目前在 Ruby 中转换它让我有一段时间:

45338-06-13 01:00:00 +0100 :(

http://www.elasticsearch.org/guide/reference/mapping/date-format/

4

1 回答 1

1

您必须将 Elasticsearch 返回的时间戳除以 1000,因为它使用不同的时间戳表示:

Time.at( 1361232000000 / 1000 )

在 StackOverflow 上查看这个答案:将 Javascript 的 getTime() 方法创建的时间转换为 Ruby Time 对象

于 2013-07-31T16:56:41.117 回答