Ruby 在 Rails 转换日期
Ruby on Rails converting date
我正在使用 html5 日期时间本地类型
<input type="datetime-local" value="" name="start_date1"/>
它将此发送到控制器:
2015-04-03T00:00
是否可以将其转换为:
2015-04-03 00:00:00 +0100
您可以尝试将 params[start_date1]
更改为日期时间:
require 'date' # not needed if you're using Rails
params[start_date1] = DateTime.strptime(params[start_date1], '%Y-%m-%dT%R')
这里:
%Y - Year with century (can be negative, 4 digits at least).
%m - Month of the year, zero-padded (01..12).
%d - Day of the month, zero-padded (01..31).
%R - 24-hour time (%H:%M).
您的参数值“2015-04-03T00:00”是用“%Y-%m-%dT%R”解析的,因为 %Y 是 2015,%m 是 04,%d 是 03,“ T”表示时间为 24 小时格式。所以,我们只是按原样使用,并使用 %R 来解析 "hours:minutes".
您可以阅读更多关于 DateTime
format directives here。
在 Rails 中,您应该在 config.time_zone
中设置应用的默认时区。那么
Time.zone.parse(params[:start_date1])
将默认为该时区。
Time.zone
可以在运行时被覆盖,参见 http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html#method-i-parse
你也应该看看这个:http://www.elabs.se/blog/36-working-with-time-zones-in-ruby-on-rails
如果您使用的是 Rails,请查看:github。com/launchpadlab/decanter
基本思想是,这个 gem 为您提供了一个地方,让您可以在参数到达您的模型之前对其进行转换。有点像活动模型序列化器的反面。
我正在使用 html5 日期时间本地类型
<input type="datetime-local" value="" name="start_date1"/>
它将此发送到控制器: 2015-04-03T00:00
是否可以将其转换为: 2015-04-03 00:00:00 +0100
您可以尝试将 params[start_date1]
更改为日期时间:
require 'date' # not needed if you're using Rails
params[start_date1] = DateTime.strptime(params[start_date1], '%Y-%m-%dT%R')
这里:
%Y - Year with century (can be negative, 4 digits at least).
%m - Month of the year, zero-padded (01..12).
%d - Day of the month, zero-padded (01..31).
%R - 24-hour time (%H:%M).
您的参数值“2015-04-03T00:00”是用“%Y-%m-%dT%R”解析的,因为 %Y 是 2015,%m 是 04,%d 是 03,“ T”表示时间为 24 小时格式。所以,我们只是按原样使用,并使用 %R 来解析 "hours:minutes".
您可以阅读更多关于 DateTime
format directives here。
在 Rails 中,您应该在 config.time_zone
中设置应用的默认时区。那么
Time.zone.parse(params[:start_date1])
将默认为该时区。
Time.zone
可以在运行时被覆盖,参见 http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html#method-i-parse
你也应该看看这个:http://www.elabs.se/blog/36-working-with-time-zones-in-ruby-on-rails
如果您使用的是 Rails,请查看:github。com/launchpadlab/decanter
基本思想是,这个 gem 为您提供了一个地方,让您可以在参数到达您的模型之前对其进行转换。有点像活动模型序列化器的反面。