2010-01-05 82 views
5

我有一個數據庫列,語法爲「0000-00-00 00:00:00」。在PHP中我會做 date('Y-m-d H:i:s');Ruby - 數據庫的日期時間

在Ruby中,我做

require 'date' 
now = DateTime::now() 
puts "#{now.year()}-#{now.mon()}-#{now.mday()} #{now.hour()}:#{now.min()}:#{now.sec()}" 

結果是: 「2010-1-5 10:16:4」 那是不行的。我如何創建格式爲「0000-00-00 00:00:00」的「時間串」?

感謝很多提前&問候

+0

參見http://stackoverflow.com/questions/1230296/how-do-i-format- a-date-to-mm-dd-yyyy-in-ruby – glmxndr 2010-01-05 09:45:26

回答

9

可以在PHP感謝格式化日期等對內置Time類,請參閱文檔there

這將使你的情況:

t = Time.now 
puts t.strftime("%Y-%m-%d %H:%M:%S") 
+0

非常感謝您的幫助! – Tim 2010-01-05 09:37:23

2

短一點

t = Time.now 
puts t.strftime("%F %T") 

=> "2015-01-06 14:01:05" 
2

ISO8601方法是有用的也:

>> Time.now.utc.iso8601 
=> "2015-05-08T16:45:22Z" 
0

的ActiveRecord趨於存儲日期/時間爲UTC,所以使用utc將使您的數據更一致

t = Time.now.utc 
puts t.strftime("%F %T") 

=> "2016-05-06 19:05:01" 
0

如果您使用的Rails /的ActiveSupport然後to_s(:db)將以最短的方法:

Time.now.to_s(:db) 
=> "2017-05-22 11:14:40" 
相關問題