私は次の配列を持っています:
open_emails = [["2012-04-21", 5], ["2012-04-20", 1], ["2012-04-22", 4]];
しかし、私はそれを次の形式にしたいのです。
open_emails = [[4545446464, 5], [35353535, 1], [353535353535, 4]];
すなわち。ミリ秒単位の日付
ありがとう
to_time
とto_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] }
メソッド(古いRuby)がない場合は#to_time
、手動で(を使用してTime#local
)変換するか、代わりに次のようにすることができます。
Date.parse(s).strftime('%s').to_i
Date
または、完全にスキップして、
Time.local(*s.split('-').map{|e| e.to_i}).to_i