2010-03-30 4 views
0

Pardonnez-moi si c'est une réponse simple.DataMapper Dates

Mais comment obtenez-vous une date à partir d'une propriété DataMapper. Par exemple:

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 

Répondre

3

Vous pouvez y accéder avec les fonctions de http://ruby-doc.org/core/classes/DateTime.html

Par exemple:

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 

renverra une date au format AAAA-MM-JJ HH: MM: SS

Cela aide-t-il?

1

Ou bien

test.created_at.to_time 

retourne une date telle que 2011-07-14 00:09:32 +0100, y compris le décalage.

Ou

test.created_at.strftime("%c") 

retourne une date définie dans le format local, comme Thu Jul 14 00:09:32 2011.

Ou l'une des

test.created_at.iso8601 
test.created_at.to_s 

retourne une date au format ISO 8601, comme 2011-07-14T00:09:32+01:00.

Oh, et il n'est pas nécessaire de spécifier fmt=; vous pouvez faire

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

Cependant, si vous voulez juste la date, vous pouvez faire

test.created_at.to_date.to_s 

qui retourne "2011-07-14".

N'oubliez pas non plus que vous pouvez utiliser created_on, si vous ne voulez stocker qu'une date et jamais un DateTime.