加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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做出它的魔法时间和从结果中减去它的时间的变化来说是安全的.它可能永远不会发生,但我认为这比对不起更安全.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读