我正在使用带有ActiveRecords的Ruby on Rails。它真的让我厌倦了所有这些数据类型,如DateTime,Time等。我在前端渲染所有与数据相关的东西,所以我在从DB中检索时间戳时只需要简单的int。我可以在代码中没有这么多to_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
然后我喜欢
<%= @user.created_at =>
我喜欢2015-02-11 14:11:04 UTC(因为它实际上是DateTime to_s)。虽然我只需要1423663864(所以我必须做像&lt;%= @ user.created_at.to_i =&gt;)的smth。所以它进行4(!)转换:
答案 0 :(得分:1)
你可以在config / initializers中创建一个文件,比如说... date_format.rb:
Date::DATE_FORMATS[:default] = "%d-%m-%Y"
然后,当您打印日期时,它将以您编写的格式显示。 P.D。:对不起我的英语。
答案 1 :(得分:1)
这会将日期的默认输出格式更改为unix时间戳表示形式:
Date::DATE_FORMATS[:default] = "%s"
自Unix时代以来的秒数:
%s - 自1970-01-01 00:00:00 UTC以来的秒数。
详细了解如何在rails here中处理datetime
和timestamp
类型(在答案的最后)
答案 2 :(得分:0)
在ruby中,您可以在Date / Time / DateTime对象上调用to_i
或to_f
,以获得整数或浮点格式的“自纪元以来的秒数”。