我正在尝试格式化日期Thu, 10th Jan 2016
.我写了一个方法来获取当前时间,并使其显示为所述格式.
def time_format(ob_created_at)
ob_duplicate = ob_created_at
ob_duplicate = ob_created_at.strftime("%a")
day = ob_created_at.strftime("%d")
day = day.to_i.ordinalize
ob_duplicate = ob_duplicate + day + ob_created_at.strftime("%b %Y")
end
t = Time.now
time_format(t)
Run Code Online (Sandbox Code Playgroud)
day
是字符串.我试图转换为int,并申请ordinalize
它.它引发了一个未定义的方法错误.
ordinalize
不是Ruby方法,但它是由Rails的ActiveSupport
gem 添加的.
我认为,ActiveSupport
当你需要的只是一个简单的方法时,为你的项目添加一个gem依赖是不值得的.在这里找到它的实现,请注意ordinal
上面的内容.
您只需要这两种方法:
def ordinal(number)
abs_number = number.to_i.abs
if (11..13).include?(abs_number % 100)
"th"
else
case abs_number % 10
when 1; "st"
when 2; "nd"
when 3; "rd"
else "th"
end
end
end
def ordinalize(number)
"#{number}#{ordinal(number)}"
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
663 次 |
最近记录: |