0

私は次の配列を持っています:

open_emails = [["2012-04-21", 5], ["2012-04-20", 1], ["2012-04-22", 4]];

しかし、私はそれを次の形式にしたいのです。

open_emails = [[4545446464, 5], [35353535, 1], [353535353535, 4]];

すなわち。ミリ秒単位の日付

ありがとう

4

2 に答える 2

4

to_timeto_iメソッドを使用できます

require 'date' # not required if you're using rails
open_emails = [["2012-04-21", 5], ["2012-04-20", 1], ["2012-04-22", 4]]
open_emails.map { |s, i| [Date.parse(s).to_time.to_i, i] }
# => [[1334959200, 5], [1334872800, 1], [1335045600, 4]]

Ruby 1.8にはto_timeメソッドはありませんが、代わりに次を使用できますTime.mktime

open_emails.map { |s, i| [Time.mktime(*s.split('-')).to_i, i] }
于 2012-05-07T09:28:09.917 に答える
2

メソッド(古いRuby)がない場合は#to_time、手動で(を使用してTime#local)変換するか、代わりに次のようにすることができます。

Date.parse(s).strftime('%s').to_i

Dateまたは、完全にスキップして、

Time.local(*s.split('-').map{|e| e.to_i}).to_i
于 2012-05-07T10:21:20.980 に答える