[英]Ruby on Rails converting date
我正在使用html5 datetime-local類型
<input type="datetime-local" value="" name="start_date1"/>
它將發送給控制器:2015-04-03T00:00
是否可以將其轉換為:2015-04-03 00:00:00 +0100
您可以嘗試將params[start_date1]
更改為datetime:
require 'date' # not needed if you're using Rails
params[start_date1] = DateTime.strptime(params[start_date1], '%Y-%m-%dT%R')
這里:
%Y-帶世紀的年份(可以為負,至少4位數字)。
%m-一年中的月份,零填充(01..12)。
%d-每月的某天,填充零(01..31)。
%R-24小時制(%H:%M)。
您的參數值“ 2015-04-03T00:00”用'%Y-%m-%dT%R'進行了解析,因為%Y是2015,%m是04,%d是03,“ T”表示時間為24小時格式。 因此,我們按原樣放置它,並使用%R解析“ hours:minutes”。
在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
基本思想是,此寶石為您提供了一個在參數到達模型之前對其進行轉換的地方。 有點像主動模型序列化器的逆過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.