Rails:用于今天和明天的DateTime助手



在Rails中是否有DateTime助手(或gem),检查给定的DateTime是否在今天,明天……输出today, at 3pmtomorrow, at 3pmnext Tuesday, at 3pm ?

我已经找到了time_ago_in_words助手http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_ago_in_words,但这是一个不同的用例。

我找不到任何像上面的例子一样格式化DateTime对象的东西。我找到了一个JavaScript的解决方案(http://momentjs.com/docs/#/displaying/calendar-time/),我正在寻找一个类似的Ruby。

您可以将DateTime转换为Time: your_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

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

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

您今天可以查看DateTime

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

明天你可以检查:

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

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

DateTime.now.at_midday + 3.hours

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

这里有一些来自API文档的信息

相关内容

  • 没有找到相关文章

最新更新