Rails在插入数据库时​​更改日期格式

时间:2015-04-21 05:27:46

标签: ruby-on-rails ruby database sqlite date

我需要比较今天的日期,即今天的“计算”日期:

 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

1 个答案:

答案 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