Ruby on rails Rails:使时间戳看起来像时间戳

Ruby on rails Rails:使时间戳看起来像时间戳,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我将RubyonRails与ActiveRecords一起使用。它确实让我对所有这些数据类型感到恶心,比如DateTime、Time等。我在前端呈现所有与数据相关的内容,所以在从DB检索时间戳时只需要简单的int。我能在代码中没有这么多的到_int吗 比如说,我有类似的迁移 class CreateUsers < ActiveRecord::Migration def change create_table :users do |t| t.string :email

我将RubyonRails与ActiveRecords一起使用。它确实让我对所有这些数据类型感到恶心,比如DateTime、Time等。我在前端呈现所有与数据相关的内容,所以在从DB检索时间戳时只需要简单的int。我能在代码中没有这么多的
到_int

比如说,我有类似的迁移

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :email, null: false
      t.string :crypted_password, null: false
      t.string :password_salt, null: false
      t.string :persistence_token, null: false

      t.timestamps null: false
    end
  end
end
class CreateUsers
那我就不喜欢了

<%= @user.created_at =>

我有smth,比如2015-02-11 14:11:04 UTC(因为它实际上是到达的日期时间)。而我只需要1423663864(所以我必须像smth那样做)。因此,它进行了4(!)转换:

  • DB 4字节int到DB字符串
  • 数据库字符串到Ruby日期时间
  • DateTime到int(第一步中的4个字节)
  • Ruby int到Ruby字符串

  • 您可以在config/initializer中创建一个文件,比如说。。。date_format.rb,带有以下内容:

    Date::DATE_FORMATS[:default] = "%d-%m-%Y"
    
    然后,当您打印日期时,它将以您编写的格式显示。
    P.D.:我的英语很抱歉。

    在ruby中,您可以对Date/Time/DateTime对象调用

    to_I
    to_f
    ,以整数或浮点格式获取“自历元起秒数”值。

    这将把日期的默认输出格式更改为unix时间戳表示:

    Date::DATE_FORMATS[:default] = "%s"
    
    根据报告:

    自Unix时代以来的秒数:
    %s—自协调世界时1970-01-01 00:00:00以来的秒数


    阅读更多关于rails中如何处理
    datetime
    timestamp
    类型的信息(在答案的末尾)

    这还不是很清楚。您使用的是什么数据库系统?数据库和活动记录中使用的数据类型是什么?并给出一个代码示例,说明您面临的问题,以及更改日期格式(要在视图中显示)所需的输出是什么?您只需将日期值保存为自历元起的秒数,即整数值。然后,您可以决定如何格式化视图中的值。@ThomasHaratyk,添加了更多内容info@amtest,不。我需要它来处理数字。它仍然是日期。只需更改方法。设置不带空格的格式。您可以将字符串打印为变量,然后将其转换为int。。。但是,是的,你得到了很多转换,所以我不知道。。。