2012-11-12 76 views
1

我认为Ruby on Rails中的Time对象存储时间,但是当我运行Time.now.beginning_of_day时,它也给出了日期。我只是想抓住时间,而不是日期。有没有办法做到这一点?由于有没有办法在Ruby on Rails中存储时间?

+0

那段时间你想做什么?将它显示为一个字符串?用它作为整数计算?这是当地时间还是GMT?没有约会的时间可能毫无用处(请考虑“夏令时有效 - 或者可能不会?”) – vladr

+0

我运行时主要针对商店何时开启或关闭进行计算。显示不是我想要解决的主要问题。谢谢 – perseverance

回答

2

是你必须做的Rails的日期格式 - strftime的

请参阅本扭结http://www.wetware.co.nz/2009/07/rails-date-formats-strftime/

而这个链接http://apidock.com/ruby/DateTime/strftime

例子: //你的情况,应该这样做 时间.now.beginning_of_day.strftime(“%I:%M”)

With preceding zero (capital I) 

Time.now.strftime("%I:%M") # => 05:21 
Without preceding zero (lowercase L) 

Time.now.strftime("%l:%M") # => 5:21 

希望它有帮助。

UPDATE://好了下面Why is Time storing date information? Shouldn't it just be time?

好点,你质疑的评论你的问题,因为vladr提到它上面(I am sure that the group of people who create rails will think very similar to vladr mention above when they gonna design Time object in rail),当你在谈论的时候,它不能帮助,它会也与时区有关。在你的情况下,你想使用Time.now.beginning_of_day对吗?我现在在泰国,假设你在美国,在美国的时间比泰国慢12个小时,所以现在在泰国是上午10点,那么在美国应该是星期一晚上10点,所以你用Time.now.beginning_of_day(让我们使用Time.now获得更清晰的图片),那么答案是什么?所以这就是为什么我认为创建rails的人使用UTC + 0作为标准的原因,在你的情况下,我建议使用Time.zone.now,最近我发现了一些有趣的博客,请参阅http://www.elabs.se/blog/36-working-with-time-zones-in-ruby-on-rails,希望它能帮助你。任何人,如果你觉得缺少某些东西,请随时编辑我的答案,非常感谢你们:)。

+0

为什么Time存储日期信息?难道不是时候吗? – perseverance

+0

我已经更新了答案,请看看,如果你有任何问题,请随时告诉我,我会尽我所能,堆栈溢出是用于分享知识无论如何:)万岁堆栈溢出! – piam

相关问题