在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中搜索类似的解决方案。
答案 0 :(得分:0)
您可以通过以下方式将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
答案 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
的更多信息