36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
module DateHelper
|
|
|
|
# Use time_ago_in_words if less than a month ago, otherwise display date
|
|
def set_format_for_date(datetime)
|
|
return "" unless datetime.is_a? Time
|
|
if datetime > 30.days.ago && !AdminSetting.enable_test_caching?
|
|
time_ago_in_words(datetime)
|
|
else
|
|
date_in_user_time_zone(datetime).to_date.to_formatted_s(:rfc822)
|
|
end
|
|
end
|
|
|
|
def date_in_user_time_zone(datetime)
|
|
if logged_in? && current_user.preference.time_zone
|
|
zone = current_user.preference.time_zone
|
|
begin
|
|
date_in_user_time_zone = datetime.in_time_zone(current_user.preference.time_zone)
|
|
rescue
|
|
datetime
|
|
end
|
|
else
|
|
date_in_user_time_zone = datetime
|
|
end
|
|
end
|
|
|
|
# show date in the time zone specified
|
|
# note: this does *not* append timezone and does *not* reflect user preferences
|
|
def date_in_zone(time, zone = nil)
|
|
zone ||= Time.zone.name
|
|
return nil if time.blank?
|
|
|
|
time_in_zone = time.in_time_zone(zone)
|
|
I18n.l(time_in_zone, format: :date_short_html).html_safe
|
|
# i18n-tasks-use t('time.formats.date_short_html')
|
|
end
|
|
end
|