2010-09-27 6 views

Antwort

56

Sie können dies über Ihre I18n-Länderdatei ändern. In config/locales/en.yml ...

"en": 
    datetime: 
    distance_in_words: 
     about_x_hours: 
     # The defaults are "about 1 hour" and "about %{count} hours" 
     one: "1 hour" 
     other: "%{count} hours" 

Siehe default locale file in actionpack für eine komplette Referenz.

+0

Eigentlich würde dies falsche Ausgabe geben. Zum Beispiel würde "helper.distance_distance_of_time_in_words (1. Stunde + 29. Minuten)" mit dieser Lösung "1 Stunde" ausgeben, und wenn Sie eine Minute hinzufügen, würde es "2 Stunden" ausgeben. Deshalb heißt es ursprünglich "ungefähr 1 Stunde" und "ungefähr 2 Stunden". Es verwendet Zeitintervalle basierend auf Auf- und Abrunden, um zu bestimmen, was die nächste volle Stunde oder ähnlich ist. Ich schlage vor, den dotiw Edelstein stattdessen für genaue Zeiten zu verwenden. https://github.com/radar/dotiw – Magne

+0

Danke, dass du meinen Tag gerettet hast – Deepak

6

Sie können meine dotiw Gem/Plugin dafür verwenden. Es fügt ein paar zusätzliche Optionen hinzu und ist präziser als das, was Rails bietet.

distance_of_time_in_words(time1, time2, :only => [:days, :hours, :minutes]) 
+0

thxs, aber Ich mag den Mangel an Präzision für die App, die ich baue. Es geht eher darum, das Wort "über" zu entfernen, um Sinn zu machen? – AnApprentice

+0

@TheApprentice, gut in diesem Fall verwenden Sie die Option ': vage' in dotiw. –

+0

@AnApprentice: Dies sollte die akzeptierte Antwort sein, da die Antwort von Dave tatsächlich die falsche/unbeabsichtigte Ausgabe ergibt. – Magne

12

ich das gleiche Problem hatte, landete ich dies bis zu tun, vor allem, weil ich bin immer noch in der Luft etwa, ob die über global entfernen -

<p class="entry_created_at"><%= time_ago_in_words(plate.created_at).gsub('about','') + ' ago' %></p> 
Verwandte Themen