BLOG GUESTBOOK
RSS
CATEGORY


Comments


Trackbacks

[Rails] Date Formats.

2013. 8. 20. 15:10 -  Dev/Rails

웹페이지에서 날짜를 표현하는데

yyyy-mm-dd hh:mm:ss에다가 timezone까지 나오면 뭔가 이상하잖아

그래서 날짜 형식을 보기 좋게 바꿀 수는 없을까 하고 검색을 좀 해보았다.


우선 가장 좋은 문서는 루비온레일즈 api.

http://api.rubyonrails.org/classes/DateTime.html

seconds_until_end_of_day()라는 메소드도 있네. 말 그대로 하루가 끝나려면 몇 초가 남았는지를 알려주는 놈이다. 신기하다. 근데 저거 어디에 쓰는거지


하지만 나한테 지금 필요한 건 이게 아니었기 때문에 조금 더 검색. 그리고 좋은 자료를 발견했다!

http://techoctave.com/c7/posts/23-rails-date-formats

내가 궁금해하는 것들은 전부 나와있다 ^0^ 행복하군


레일즈에서 Date format을 바꾸기 위해서는 strftime() 메쏘드를 사용하면 된다.

strftime() 함수는 C에도 있고 PHP에도 있고 하니까.. 비슷하게 사용하면 되겠지?

인자로 format string을 넣어주면 알아서 예쁘게 고쳐보여준다능;


내 경우에는

List.first.updated_at.strftime("%B %d, %Y")

이런 방식으로 써줬더니 원래는 

'2013-08-20 14:15:15 +0900' 이런 식으로 나오던 날짜가 

'August 20, 2013' 이라고 예쁘게 나타나는 걸 확인할 수 있었다.


--

참고로 day를 서수로 표현하고 싶다면 약간의 트릭이 필요하다.

http://stackoverflow.com/questions/165170/in-ruby-on-rails-how-do-i-format-a-date-with-the-th-suffix-as-in-sun-oct-5


time.strftime("%a %b #{time.day.ordinalize}")

이런 방식으로 .ordinalize를 사용하면 기수를 서수로 바꿀 수 있다.

ordinalize는 날짜에만 적용되는 것은 아니고, 그냥 '숫자.ordinalize'와 같은 방식으로 사용할 수 있다. 예를 들자면, 3.ordinalize의 결과는 3rd. 루비에서는 Integer 하나하나도 전부 class인지라...