I have a model in my Rails 3 application which has a date
field:
class CreateJobs < ActiveRecord::Migration
def self.up
create_table :jobs do |t|
t.date "job_date", :null => false
...
t.timestamps
end
end
...
end
I would like to prepopulate my database with random date values.
What is the easiest way to generate a random date ?
Here's a slight expansion on Chris' answer, with optional from
and to
parameters:
def time_rand from = 0.0, to = Time.now
Time.at(from + rand * (to.to_f - from.to_f))
end
> time_rand
=> 1977-11-02 04:42:02 0100
> time_rand Time.local(2010, 1, 1)
=> 2010-07-17 00:22:42 0200
> time_rand Time.local(2010, 1, 1), Time.local(2010, 7, 1)
=> 2010-06-28 06:44:27 0200
Generate a random time between epoch, the beginning of 1970, and now:
Time.at(rand * Time.now.to_i)
Keeping simple..
Date.today-rand(10000) #for previous dates
Date.today+rand(10000) #for future dates
PS. Increasing/Decreasing the '10000' parameter, changes the range of dates available.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With