rails时间显示

---------

At lunch today I wanted to add today’s date onto a Rails page.

works relatively well enough, except it gives the date in a pretty ugly format… like this:

Thu Aug 31 13:51:33 US Mountain Standard Time 2006

I don’t need that much information and I’d like the day and month to be fully spelled out. I figured that reformatting the date should be awfully simple. It is, but it isn’t straightforward and it was difficult to find any documentation about it.

I looked in the rdoc for the ruby API. I looked at the “Time” class and just didn’t see what I was looking for. There’s so much there, I just didn’t look hard enough. I looked in the pick-axe book. No help there either. Finally, I went back to my copy of the rails mailing list and found the answer! Then I went back into the API and found it there as well.

The magic method is strftime. Find the time class in the api and scroll waaaaaaaaaaaaaaaaay down to strftime. With this method, you can pretty much spit out time and date strings however you’d like. Here’s what the API says:

time.strftime( string ) => string

Formats time according to the directives in the given format string. Any text not listed as a directive will be passed through to the output string.

Format meaning:

%a - The abbreviated weekday name (``Sun'')
%A - The full weekday name (``Sunday'')
%b - The abbreviated month name (``Jan'')
%B - The full month name (``January'')
%c - The preferred local date and time representation
%d - Day of the month (01..31)
%H - Hour of the day, 24-hour clock (00..23)
%I - Hour of the day, 12-hour clock (01..12)
%j - Day of the year (001..366)
%m - Month of the year (01..12)
%M - Minute of the hour (00..59)
%p - Meridian indicator (``AM'' or ``PM'')
%S - Second of the minute (00..60)
%U - Week number of the current year,
starting with the first Sunday as the first
day of the first week (00..53)
%W - Week number of the current year,
starting with the first Monday as the first
day of the first week (00..53)
%w - Day of the week (Sunday is 0, 0..6)
%x - Preferred representation for the date alone, no time
%X - Preferred representation for the time alone, no date
%y - Year without a century (00..99)
%Y - Year with century
%Z - Time zone name
%% - Literal ``%'' character

t = Time.now
t.strftime("Printed on %m/%d/%Y") #=> "Printed on 04/09/2003"
t.strftime("at %I:%M%p") #=> "at 08:56AM"

So, once found it was easy enough. Here’s what I put in my .rhtml file:

which spits out: “Thursday August 31, 2006”.

Also, this:

spits out something like: “01:51 PM”.

Again, this is probably very elementary for most RubyNoob readers, but I’ve posted it in part as a reference for me to easily find when I need it again.

I was really sure that Rails had some quick/easy way to do this, but I couldn’t find it. If there’s an easier Railsish way to do this, please let me know in the comments. Thanks!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值