我需要比较今天的日期,即今天的“计算”日期:
time=Time.now
today=time.day.to_s+'/'+time.month.to_s+'/'+time.year.to_s
今天看起来像:
"21/4/2015"
但是当今天的例子进入db时,sqlite自动将其格式化为:
2015-04-21
但是,我需要检查今天(上面声明的)是否等于db(转换后)的属性。这总是会返回错误,因为虽然它们是相同的,但字符串并不相等。这打破了我的计划的逻辑。
有没有办法将今天(上面声明的)转换为与将数据放入数据库时相同的格式?即预处理它,以便逻辑成立并且相等检查将返回true。
即
today.someMethod==Model.date => true
答案 0 :(得分:1)
您可以使用strftime
:
time = Time.now.strftime('%d/%m/%Y')
# => "21/04/2015"
下面:
%Y - 世纪年份(可以是负数,至少4位数)。
%m - 一年中的月份,零填充(01..12)。
%d - 月中的某天,零填充(01..31)。
此外,如果您正在使用Rails并想要检查某个特定日期时间是否属于今天的日期,那么您可以使用today?
这样的代码:
MyModel.create(:attrib => 'value') # assuming you have no entry in my_models table yet.
MyModel.first.created_at.today? #=> true