Rails:今天,明天的DateTime助手

时间:2015-06-02 08:33:05

标签: ruby-on-rails ruby datetime

在Rails(或gem)中有一个DateTime帮助器,它检查给定的DateTime是否是今天,明天......并产生today, at 3pm,{{1}等输出}或tomorrow, at 3pm

我找到了next Tuesday, at 3pm帮助器http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_ago_in_words,但这是一个不同的用例。

我找不到任何格式化time_ago_in_words对象的内容,就像上面的示例一样。我找到了JavaScript(http://momentjs.com/docs/#/displaying/calendar-time/)的解决方案,我正在Ruby中搜索类似的解决方案。

4 个答案:

答案 0 :(得分:0)

您可以通过以下方式将DateTime转换为Timeyour_date_time.to_time,然后使用time_ago_in_words

如果您想要一种非常具体的方式来显示日期,您应该创建自己的帮助器。否则,您可以尝试将time_ago_in_words与自定义帮助器组合在一起。

PS:你也可以像这样编辑time_ago_in_words语言环境

"en":
  datetime:
    distance_in_words:
      about_x_hours:
        # The defaults are "about 1 hour" and "about %{count} hours"
        one: "1 hour"
        other: "%{count} hours"

此处完整参考:https://github.com/rails/rails/blob/master/actionview/lib/action_view/locale/en.yml#L18

答案 1 :(得分:0)

您可以使用找到的gem,只需将DateTime转换为Time time

datetime = DateTime.now
time = datetime.to_time
#use time ago gem

答案 2 :(得分:0)

您今天可以检查DateTime为

DateTime.now.today? // returns boolean value if DateTime value is today's date

明天你可以查看:

DateTime.tomorrow //will return tomorrow's date.

答案 3 :(得分:0)

我不太确定我是否完全理解您的要求,但如果您想在今天下午3点设定时间,您可以写下以下内容

DateTime.now.at_midday + 3.hours

上述代码的优点在于它将时间设置为固定点,并允许您计算相对时间。

来自API docs

的更多信息