2010-01-05 3 views
5

"0000-00-00 00:00:00"구문의 데이터베이스 열이 있습니다. PHP에서 나는 할 것입니다 날짜 ('Y-m-d H : i : s'); 루비에서 Ruby - 데이터베이스 용 DateTime

, 내가

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

답변

9

당신은 내장 Time 클래스 참조 문서 there에 PHP 덕분에 같은 날짜를 포맷 할 수 있습니다.

이 사건에 대한 줄 것이다 :

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

많은 도움을 주셔서 감사합니다! – Tim

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

액티브는 다음과 같이 날짜/시간을 저장하는 경향이있다 UTC이므로 utc을 사용하면 데이터가보다 일관성있게 유지됩니다.

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

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

당신은 레일/ActiveSupport를 사용하는 경우 다음 to_s(:db) 가장 짧은 방법이 될 것입니다 :

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