diff --git a/lib/liquid/standardfilters.rb b/lib/liquid/standardfilters.rb index 26f7c04..51dbdb4 100644 --- a/lib/liquid/standardfilters.rb +++ b/lib/liquid/standardfilters.rb @@ -158,6 +158,10 @@ module Liquid return input.to_s end + if ((input.is_a?(String) && !/^\d+$/.match(input.to_s).nil?) || input.is_a?(Integer)) && input.to_i > 0 + input = Time.at(input.to_i) + end + date = input.is_a?(String) ? Time.parse(input) : input if date.respond_to?(:strftime) diff --git a/test/lib/liquid/standard_filter_test.rb b/test/lib/liquid/standard_filter_test.rb index 4e0dba4..71f9a61 100644 --- a/test/lib/liquid/standard_filter_test.rb +++ b/test/lib/liquid/standard_filter_test.rb @@ -97,6 +97,9 @@ class StandardFiltersTest < Test::Unit::TestCase assert_equal "07/16/2004", @filters.date("Fri Jul 16 01:00:00 2004", "%m/%d/%Y") assert_equal nil, @filters.date(nil, "%B") + + assert_equal "07/05/2006", @filters.date(1152078955, "%m/%d/%Y") + assert_equal "07/05/2006", @filters.date("1152078955", "%m/%d/%Y") end