ruby-on-rails – Ruby(使用Rails)将一串时间转换为秒?
发布时间:2020-12-17 01:44:43 所属栏目:百科 来源:网络整理
导读:所以,我有一串时间……有些事情 '4 hours''48 hours''3 days''15 minutes' 我想将这些转换为秒.对于’4小时’,这很好 Time.parse('4 hours').to_i - Time.parse('0 hours').to_i= 14400 # 4 hours in seconds,yay 但是,这在48小时内不起作用(超出范围误差).
所以,我有一串时间……有些事情
'4 hours' '48 hours' '3 days' '15 minutes' 我想将这些转换为秒.对于’4小时’,这很好 Time.parse('4 hours').to_i - Time.parse('0 hours').to_i => 14400 # 4 hours in seconds,yay 但是,这在48小时内不起作用(超出范围误差).它也不工作3天(没有信息错误)等. 有没有一种简单的方法将这些字符串转换为秒? 解决方法
你问Ruby与Time.parse的关系是确定一天中的某个时间.那不是你想要的.我能想到的所有库在这方面都是相似的:他们对绝对时间感兴趣,而不是时间长度.
要将您的字符串转换为我们可以使用的时间格式,我建议使用Chronic(gem install chronic).要转换为秒,我们可以执行与当前时间相关的所有操作,然后根据需要减去该时间以获得绝对秒数. def seconds_in(time) now = Time.now Chronic.parse("#{time} from now",:now => now) - now end seconds_in '48 hours' # => 172,800.0 seconds_in '15 minutes' # => 900.0 seconds_in 'a lifetime' # NoMethodError,not 42 ;) 几个快速笔记: >从现在开始是需要慢性病的原因 – 它处理自然语言输入.>我们现在指出,对于Time.now从Chronic做出它的魔法时间和从结果中减去它的时间的变化来说是安全的.它可能永远不会发生,但我认为这比对不起更安全. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |