两次会议纪要

时间:2013-11-17 15:02:14

标签: ruby-on-rails ruby

我遇到问题的第一件事是,虽然我在我的数据库中定义:

 add_column :patients, :wartezeit, :time

在我的控制器中:

 @patient.update_columns(wartezimmer: true, wartezeit: Time.now)

我为任何patient.wartezeit获得了这样的输出:

2000-01-01 13:48:18 UTC我的意思是这是日期时间!我是正确的?我错了什么?

接下来,我尝试获取patient.wartezeitTime.now

之间的分钟数
((Time.now - f.wartezeit) / 60).to_i + " minutes"

不知怎的,我得到完全错误的分钟数!可能是因为patient.wartezeit被定义为Datetime。

也许有人也对我有一个想法,我如何更改我的代码,以便它不仅显示分钟!因为现在我得到了例如:80 minutes但是1 hour 20 minutes更有意义!感谢

2 个答案:

答案 0 :(得分:1)

你太努力了; Rails中的ActiveSupport使这些东西更容易。

(Time.now.minutes - f.wartezeit.minutes).to_s + ' minutes'

而且,是的,Time不是“一天中的时间”,而是一个“所有时间中的时刻”对象。

答案 1 :(得分:0)

患者。 wartezeit是一个Time元素,datetime元素看起来像Sun, 17 Nov 2013 08:11:08 -0700 - 至于获取它的显示方式,我通常会使用一个gem。时间和日期的解析和减法很容易搞砸,所以为了保持一致性,我使用相同的东西。

https://github.com/abhidsm/time_diff

这将让你做到

diff = Time.diff( f.wartezeit, Time.now, '%y, %M, %w, %d and %H %N %S') 
diff[:diff]

会渲染类似

的内容
12 hours 20 minutes 0 seconds