我是 Ruby 的新手,并且有一段时间试图弄清楚如何在散列中获取一个值并将其转换为天、小时和分钟。基本上我想做的是创建一个未来的时间量,添加到DateTime.now
. 然而不幸的是,天、小时和分钟的转换似乎以毫秒为单位;不是我所期望的。
代码
puts "date_hash #{date_hash}"
puts "days #{date_hash['days']} - #{date_hash['days'].days}"
puts "hours #{date_hash['hours']} : #{date_hash['hours'].hours}"
puts "minutes #{date_hash['minutes']} : #{date_hash['minutes'].minutes}"
# below will not work (yet) until above is correct
# future = date_hash['days'].days + date_hash['hours'].hours + date_hash['minutes'].minutes
# end_date = DateTime.now + future
输出:
date_hash {"days"=>27, "hours"=>1, "minutes"=>13}
days 27 - 2332800 # would expect 27.days
hours 1 : 3600 # would expect 1.hour
minutes 13 : 780 # would expect 13.minutes
任何帮助深表感谢。
days 27 - 2332800 # would expect 27.days hours 1 : 3600 # would expect 1.hour minutes 13 : 780 # would expect 13.minutes
2332800 是 27 天。在内部,所有持续时间无论如何都以秒表示(因此您可以对它们进行数学计算)。当您在插值中使用持续时间时,会隐式.to_s
调用将其转换为字符串。看一下这个:
27.days # => 27 days
27.days.to_s # => "2332800"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句