2012-04-29 35 views
0

我正在尋找某個給定日期的東西,從現在開始將會顯示單詞的時間。例如:有沒有time_from_now寶石?

如果今天是2012年4月28日,我想:

  • 4/29顯示 「明天」
  • 4/30,顯示 「下週一」
  • 4/31以顯示「下個星期二」

有沒有這個寶石已經或我必須自己寫嗎?如果我必須寫它,乾淨的方法是什麼?我以前沒有在rails中寫過這樣的東西。謝謝!

+0

如果你創建了這個,你可以擴展https://github.com/radar/dotiw – 2012-04-29 01:17:21

+1

不知道任何寶石,但有人寫了一個解決方案,涵蓋了[這裏的另一個問題]中的大多數需求(http: //stackoverflow.com/questions/9779244/ruby-rails-converting-datetime-to-natural-language-ie-3-23-2012-to-this-fri)。 – pjumble 2012-04-29 01:20:32

回答

4

我相信你正在尋找的distance_of_time_in_words幫手,這已經是available in Rails - 這是基本的time_ago_in_words相反的,因爲它會告訴你的時候兩個時間之間的量感,而不是多長時間,因爲有一定時間已經過去了,現在現在是,因此可以用來衡量未來而不是過去。

它不會給你像「下一個星期一」那樣的星期幾,但如果你點擊助手文檔底部的Source: show鏈接,它會爲你提供創建修改版本所需的代碼可以很容易地顯示星期信息的幫手。結合the code in this answer關於計算一週中的某一天,你已經完成了很多工作。

+1

只是一個小小的修正,'time_ago_in_words'實際上取決於'distance_of_time_in_words',所以它不完全相反。 https://github.com/rails/rails/blob/bd8a9701c27b4261e9d8dd84aebbde6ba784ed83/actionpack/lib/action_view/helpers/date_helper.rb#L132 – Gazler 2012-04-29 04:48:50