簡體   English   中英

Ruby on Rails轉換日期

[英]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”。

您可以在此處閱讀有關DateTime 格式指令的更多信息。

在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM