虽然不要忽视'日期和时间'部分。如何在两个日期之间生成随机日期和时间?
28
A
回答
56
Time.at((date2.to_f - date1.to_f)*rand + date1.to_f)
您会得到两个给定日期之间的时间对象。
2
我不知道关于红宝石,但你为什么不只是生成一个整数,并与时间戳一起使用?然后简单地将时间戳转换为您想要的格式。
0
计算两个日期之间的差异例如分钟数,生成0到该数字之间的随机数,并将该分钟数添加到第一个日期。
4
使用time.to_i()
(请参见类Time
)将日期转换为整数,在这两个值之间随机化,然后使用Time.at()
重新转换为时间和日期。
29
您应该能够在一定范围内生成随机日期/时间。
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))
0
如果您知道中点上,你可以用我的ISH宝石中点两侧的偏移范围:https://github.com/spilliton/ish
mid_date.ish(:offset => 60.days)
4
使用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)
0
Time.at(rand(Time.parse('some date').to_i..Time.now.to_i))
相关问题
- 1. 如何生成两个日期之间的所有日期
- 2. 用两个日期之间的随机日期时间更新每行
- 3. 如何随机生成特定的日期之间的日期在MySQL
- 4. 在两个日期之间生成日期
- 5. 如何使用php在两个日期之间生成随机数据?
- 6. 查找两个日期之间发生的日期日期
- 7. 机器人 - 随机生成的日期和时间
- 8. 生成的Java(乔达时间)随机日期时间
- 9. 获取两个日期之间的最大日期/时间
- 10. 日期之间的日期与时间
- 11. 如何检查日期是否在两个日期之间mysql?
- 12. 如何在两个日期之间动态选择日期
- 13. 如何汇总和平均两个日期之间的时间?
- 14. 计算两个日期之间的日间时间和夜间时间
- 15. 生成随机日期
- 16. 在两个输入日期之间创建日期和时间列表
- 17. 日期间的计算在两个日期之间
- 18. VB.NET确定两个日期和时间之间的时间差
- 19. TSQL更新的日期时间与随机值2个日期
- 20. MySQL使用现在时间在两个日期之间选择一个日期
- 21. PHP如果在两个日期之间
- 22. 如何查看日期是否在两个其他日期之间,以及所用时间和剩余时间?
- 23. 如何在mysql中显示两个日期之间的时间
- 24. 两列之间的Mysql日期时间
- 25. 如何日期和时间转换成日期时间/时间戳
- 26. 如何同步PC和手机之间的日期和时间?
- 27. 如何从日期时间戳的时间和日期在PHP
- 28. 两个日期之间的时差
- 29. 如何查找两个指定日期之间的日期?
- 30. 我如何计算两个日期之间的日期
这是一个很好的解决方案。然而一记可能是为了;您需要将您的日期转换为时间才能在其上调用'to_f'。 'Date'没有'to_f'。 即'Date.today.to_time' – 2011-11-03 15:11:16
+1简单,重点,美观。非常感谢。 – 2011-11-23 10:45:58
我需要找到一种方法给你另一个+1 - 本周第二次我已经提到这个答案! – 2011-11-27 06:09:11