在Rails中是否有DateTime
助手(或gem),检查给定的DateTime
是否在今天,明天……输出today, at 3pm
、tomorrow, at 3pm
或next 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文档的信息