2010-01-05 15 views
5

"0000-00-00 00:00:00" sözdizimi içeren bir veritabanı sütunum var. PHP'de tarihini yaparım ('Y-m-d H: i: s'); Ruby Ruby - Veritabanı için DateTime

, ben

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

yapmak sonucudur: "2010/01/05 10: 16: 4" Sorun değil. "0000-00-00 00:00:00" biçimiyle nasıl "timestring" oluşturabilirim?

Şimdiden teşekkürler çok & Saygılarımızla

+0

Ayrıca bkz http://stackoverflow.com/questions/1230296/how-do-i-format- bir-date-to-mm-dd-yyyy-in-ruby – glmxndr

cevap

9

Sen yerleşik Time sınıfında, bkz belgelere there PHP sayesinde gibi tarihleri ​​biçimlendirebilirsiniz.

Bu durum için verecekti:

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

yardımlarınız için çok teşekkürler! – Tim

2

Biraz daha kısa

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

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

ISO8601 yöntem kullanışlı da olabilir:

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

ActiveRecord olarak tarih/süreleri saklamak eğilimindedir UTC, utc kullanarak verilerinizi daha güvenilir hale getirecek

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

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

Eğer Raylar/ActiveSupport kullanıyorsanız o zaman to_s(:db) en kısa yolu olacaktır:

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