ただし、「日付と時刻」の部分を見落とさないでください。
16868 次
8 に答える
62
Time.at((date2.to_f - date1.to_f)*rand + date1.to_f)
指定された2つの日時の間にある時間オブジェクトを取得します。
于 2010-04-21T14:42:17.620 に答える
41
特定の範囲内でランダムな日付/時刻を生成できるはずです。
now = Time.now
a_day_ago = now - 60 * 60 * 24
random_time = rand(a_day_ago..now)
# with activesupport required
up_to_a_year_ago = rand(1.year.ago..Time.now)
ただし、入力はTime
クラスであるか、クラスに変換される必要があります。
エポックタイムで一定範囲の時間を実行してから、を使用することもできますTime#at
。
now = Time.now.to_i
minute_ago = (Time.now - 60).to_i
Time.at(rand(minute_ago..now))
于 2012-08-16T21:43:46.277 に答える
10
メソッドを使用しrand()
ます。
require 'time'
t1 = Time.parse("2015-11-16 14:40:34")
t2 = Time.parse("2015-11-20 16:20:23")
puts rand(t1..t2)
于 2015-11-17T01:03:41.953 に答える
5
を使用してtime.to_i()
(クラスを参照Time
)、日付を整数に変換し、これら2つの値の間でランダム化してから、。を使用して時刻と日付に再変換しTime.at()
ます。
于 2010-04-21T14:39:28.530 に答える
2
ルビーについてはわかりませんが、整数を生成してタイムスタンプと一緒に使用してみませんか?次に、タイムスタンプを目的の形式に変換するだけです。
于 2010-04-21T14:35:51.657 に答える
1
中点と中点の両側のオフセット範囲がわかっている場合は、私のish gemを使用できます:https ://github.com/spilliton/ish
mid_date.ish(:offset => 60.days)
于 2013-08-01T16:03:07.283 に答える
1
Time.at(rand(Time.parse('some date').to_i..Time.now.to_i))
于 2016-07-27T18:04:13.707 に答える
0
たとえば、2つの日付の分数の差を計算し、0とその数の間の乱数を生成し、その分数を最初の日付に追加します。
于 2010-04-21T14:37:59.293 に答える