我正在寻找一个习惯的方法来获得时间通过,因为一个给定的日期在小时,分钟和秒。
如果给定日期为2013-10-25 23:55:00,当前日期为2013-10-27 20:55:09,则返回值应为45:03:09。time_difference和time_diff gem不能满足此要求。
我正在寻找一个习惯的方法来获得时间通过,因为一个给定的日期在小时,分钟和秒。
如果给定日期为2013-10-25 23:55:00,当前日期为2013-10-27 20:55:09,则返回值应为45:03:09。time_difference和time_diff gem不能满足此要求。
5条答案
按热度按时间yqkkidmi1#
你可以试试这个:
字符串
并使用它:
型
vybvopom2#
字符串
或者,如果你的应用对舍入很挑剔,只需将to_i替换为round:
型
但不确定习惯用语部分
更新:如果预计时差超过24小时,则上述代码不正确。如果是这样的话,可以按照@MrYoshiji的答案或调整上述解决方案来手动计算datetime对象的小时数:
型
inkz8wg93#
有一种方法可以做到这一点:
第一个月
等于10(实际上,9.99...,如果你想要一个10,使用
.round
)。来源:http://apidock.com/rails/Time/minus_with_coercion
希望我帮上忙了。
4c8rllxm4#
因为这还没有被标记为重复,the response in the main thread只是更清晰的IMHO。我将在这里添加它以获得更多可见性:
使用
divmod
可以非常简洁地完成:字符串
您可能可以通过使用
collect
或inject
来进一步干燥它,但是当核心逻辑只有三行时,它可能会矫枉过正。请注意,我已经改变了一点答案,以更好地适应这个线程的问题。
txu3uszq5#
一旦你得到了以秒为单位的时差,你就可以做这样的事情
字符串
其中
t
是以秒为单位的时间差