Dan*_*uis 30
您可以使用DateTime#parse将字符串转换为DateTime对象,然后将小时乘以3600并将分钟乘以60以获得秒数:
require 'date'
# DateTime.parse throws ArgumentError if it can't parse the string
if dt = DateTime.parse("10:30") rescue false
seconds = dt.hour * 3600 + dt.min * 60 #=> 37800
end
Run Code Online (Sandbox Code Playgroud)
正如jleedev在评论中指出的那样,Time#seconds_since_midnight如果你有ActiveSupport ,你也可以使用:
require 'active_support'
Time.parse("10:30").seconds_since_midnight #=> 37800.0
Run Code Online (Sandbox Code Playgroud)
内置时间库扩展了Time类以解析字符串,因此您可以使用它.它们最终表现为自UNIX纪元以来的秒数,因此转换为整数和减去应该可以得到你想要的东西.
require 'time'
m = Time.parse('00:00')
t = Time.parse('10:30')
(t.to_i - m.to_i)
=> 37800
Run Code Online (Sandbox Code Playgroud)
ActiveSupport中还有一些糖来处理这些类型的事情.
又一个实施:
Time.now.to_i - Date.today.to_time.to_i # seconds since midnight
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27546 次 |
| 最近记录: |