有没有办法让 text_field 只用于 datetime 属性的日期部分?例如,我有一个名为published_on 的日期时间参数,我希望我的text_field 只提交日期时间字段的日期(而不是时间)。这没有用:
<%= f.text_field :published_on, :value=> (@step.published_on.strftime("%m/%d/%Y")), :ignore_time=>true %>
并提交参数published_on,而不是published_on(1i)、published_on(2i) 和published_on(3i)(表示年、小时和分钟)。
编辑
我现在可以获取参数,但我有一个时区错误
这是我的控制器代码:
date = params[:step][:published_on]
logger.debug "date: #{date}"
time = params[:step][:"published_on(4i)"] +":" + params[:step][:"published_on(5i)"]
logger.debug "time: #{time}"
dateTime = date+ " " + time
logger.debug "dateTime: #{dateTime}"
dateTime = DateTime.strptime(dateTime, '%m/%d/%Y %H:%M')
logger.debug "datetime: #{dateTime}"
params[:step][:published_on] = dateTime
params[:step].delete :"published_on(4i)"
params[:step].delete :'published_on(5i)'
打印以下日志语句:
date: 01/01/2013
time: 00:00
dateTime: 01/01/2013 00:00
datetime: 2013-01-01T00:00:00+00:00
由于时区设置为默认值 (00:00),因此时间似乎不正确。有没有办法让时区从表单中传递过来?