我有一个简单的sinatra应用程序如下:
get '/api/v1/:api_id/:init/' do
@api_id = params[:api_id]
@init = params[:init]
@init_date = @init.split("-")
initial_date = Time.utc(@init_date[0], @init_date[1], @init_date[2]) # 2011-05-01 00:00:00 UTC
initial_date
end
当我浏览http://localhost:4567/api/v1/12345/2011-10-1/时,我得到“2011-10-1”,没有什么可以改变它!
我做错了什么?
答案 0 :(得分:1)
有更简单的方法来获取参数和解析日期:
phrogz$ cat date_parse.rb
require 'sinatra'
require 'date'
get '/foo/bar/:id/:date' do |id,date|
initial_date = Time.parse( date )
initial_date.to_s
end
phrogz$ curl http://localhost:4567/foo/bar/42/2011-10-05
2011-10-05 00:00:00 -0600
phrogz$ curl http://localhost:4567/foo/bar/42/2011-11-1
2011-11-01 00:00:00 -0600
这不适合你吗?每次输入不同的URL时,您都会根据哈希中的参数获得不同的响应。
您是否真的想使用Date
代替Time
?