繁体   English   中英

如何将日期时间(带时区)转换为红宝石/ Rails中的“月,日”字符串?

[英]How do I convert a datetime (w/timezone) to a “month, day” string in ruby / rails?

我在页面上显示用户消息,并且UserA已向其发送消息或从中接收消息的每个用户的时间均为created_at。

对于每个对话线程,我想显示该线程中最新消息的日期。 我正在拉created_at时间,它显示如下:

2012-02-08 09:56:34 UTC

如果我在created_at的末尾添加to_date,我可以得到以这种方式显示的日期:

2012-02-08

我想知道一种简单的方法,可以将其中任何一个转换为如下形式:

February 8

8 February

February 8th

8th February

并且如果消息不是当前年份中的created_at,则显示带有日期的年份

e.g. February 8, 2006

亲切的问候

使用strftime方法格式化日期。 例如,您可以说Febraury 8 created_at.strftime("%B -d")

看看to_formatted_s

如果您将它放在首字母缩写:

Time::DATE_FORMATS[:month_and_day] = lambda { |time| Time.now.year == time.year ? time.strftime("%B #{time.day.ordinalize}") : time.strftime("%B #{time.day.ordinalize}, %Y")}

然后,您的视图可以使用正确的格式:

created_at.to_s(:month_and_day)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM