在红宝石中是否已经实现了所有日期,时间,持续时间和ISO 8601标准的间隔使用情况?我的意思是像一个类,你可以设置和获取细节,如年,月,日,day_of_the_week,周,小时,分钟,is_duration ?, has_recurrence?等等,这些也可以被设置和导出到一个字符串?在红宝石中是否有ISO 8601的全面库/模块?
4
A
回答
3
require 'time'
time = Time.iso8601 Time.now.iso8601 # iso8601 <--> string
time.year # => Year of the date
time.month # => Month of the date (1 to 12)
time.day # => Day of the date (1 to 31)
time.wday # => 0: Day of week: 0 is Sunday
time.yday # => 365: Day of year
time.hour # => 23: 24-hour clock
time.min # => 59
time.sec # => 59
time.usec # => 999999: microseconds
time.zone # => "UTC": timezone name
看看Time。它有很多东西在里面。
不幸的是Ruby的内置日期时间功能似乎并没有通过(比较.NET为例)是经过深思熟虑,因此对于其他的功能,你将需要使用一些宝石。
好的是,使用这些宝石确实感觉它是一个内置的Ruby实现。
ActiveSupport(Rails 3)中最有用的可能是Time Calculations。
您不需要导轨,只需要这个小型库:gem install activesupport
。
然后you can do:
require 'active_support/all'
Time.now.advance(:hours => 1) - Time.now # ~ 3600
1.hour.from_now - Time.now # ~ 3600 - same as above
Time.now.at_beginning_of_day # ~ 2010-11-24 00:00:00 +1100
# also at_beginning_of_xxx: xx in [day, month, quarter, year, week]
# same applies to at_end_of_xxx
实际上有很多的事情可以做,我相信你会发现什么您需求非常好。
因此,我建议您不要在这里给出抽象的例子,而是尝试irb
,要求active_support
。
2
相关问题
- 1. 红宝石模块
- 2. 红宝石在轨道上 - 是否有任何包装或模块不是用纯红宝石书写的?
- 3. 模块内的红宝石模块
- 4. 红宝石宝石是否或依赖?
- 5. 红宝石模块优化
- 6. 检测模块红宝石
- 7. 红宝石模块声明
- 8. 如何红宝石模块
- 9. 红宝石书写模块
- 10. 如何获得红宝石2.0模块#prepend在红宝石1.8?
- 11. 是否有+ =如果{}在红宝石
- 12. 红宝石中是否有更安全的DSL工具
- 13. 红宝石自我在模块
- 14. 区块红宝石
- 15. p0f是否有任何红宝石宝石包装?
- 16. 我可以在另一个红宝石块内有红宝石块吗?
- 17. 红宝石,在if块
- 18. 验证是否有使用红宝石
- 19. 红宝石传递块块
- 20. 红宝石块和块
- 21. 如何不写在红宝石全模块路径?
- 22. “_”红宝石的参数块
- 23. 红宝石的时间块
- 24. 红宝石NTLM库
- 25. 红宝石嵌套类和模块
- 26. 红宝石模块和扩展自我
- 27. 红宝石:使用模块包括
- 28. 红宝石模块方法访问
- 29. 红宝石模块和类混乱
- 30. 在红宝石
好的开始,但据我所知,这个解决方案完全错过了持续时间和间隔部分。 – dStulle 2010-11-16 08:03:13
我已经更新了答案。您可以使用ActiveSupport。 – 2010-11-24 00:43:06