如何将用户输入转换为MySQL日期格式?

时间:2014-07-25 13:28:21

标签: ruby string ruby-on-rails-3 datetime

在我的Ruby on Rails 4应用程序中,我需要转换用户输入的dates,如...

25.07.2014
25/07/2014

......甚至可能......

25-07-2014

...成为可以存储在MySQL数据库中的默认日期格式。

2014-07-25

如何做到这一点?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

使用String#subString#sub!gsubgsub!

'25.07.2014'.sub(/(\d{2})\D(\d{2})\D(\d{4})/, '\3-\2-\1')
# => "2014-07-25"
'25/07/2014'.sub(/(\d{2})\D(\d{2})\D(\d{4})/, '\3-\2-\1')
# => "2014-07-25"

答案 1 :(得分:1)

使用strftime:http://www.ruby-doc.org/core-2.1.2/Time.html#method-i-strftime

date = Time.parse(params[:date])
date.strftime("'%Y-%m-%d'");

答案 2 :(得分:1)

使用Time.parse,卢克。它涵盖了您的所有示例。

>> require 'time'
=> true
>> Time.parse '25.07.2014'
=> 2014-07-25 00:00:00 +0200
>> Time.parse '25/07/2014'
=> 2014-07-25 00:00:00 +0200
>> Time.parse '25-07-2014'
=> 2014-07-25 00:00:00 +0200
>> Time.parse '2014-07-25'
=> 2014-07-25 00:00:00 +0200

文章Ruby for Admins: Date and Time

中的更多内容