2010-03-30 21 views
0

如果這是一個簡單的答案,請原諒我。DataMapper日期

但是,您如何從DataMapper屬性獲取日期。例如:

require 'rubygems' 
require 'sinatra' 
require 'datamapper' 

class Test 
    include DataMapper::Resource 

    property :id, Serial 
    property :created_at, Date 
end 

get '/:id' do 
    test = Test.get(1) 

    test.created_at = ? 
end 

回答

3

您可以從 http://ruby-doc.org/core/classes/DateTime.html

與功能的訪問例如:

require 'rubygems' 
require 'sinatra' 
require 'datamapper' 

class Test 
    include DataMapper::Resource 

    property :id, Serial 
    property :created_at, Date 
end 

get '/:id' do 
    test = Test.get(1) 

    test.created_at.strftime(fmt='%F %T') 
end 

將返回格式YYYY-MM-DD HH日期:MM:SS

這有幫助嗎?

1

或者確實

test.created_at.to_time 

返回的日期,如2011-07-14 00:09:32 +0100,包括偏移。

或者

test.created_at.strftime("%c") 

返回本地格式定義的日期,如Thu Jul 14 00:09:32 2011

或其中的

test.created_at.iso8601 
test.created_at.to_s 

返回ISO 8601格式的日期,如2011-07-14T00:09:32+01:00

哦,沒有必要指定fmt=;你可以做

test.created_at.strftime("%F %T") 

但是,如果你只是想日期,你可以做

test.created_at.to_date.to_s 

返回"2011-07-14"

請記住,也可以使用created_on,如果您只想存儲日期而不是日期時間。