Raylar

2013-04-25 17 views
7

Sadece bir form ve updated_at ve created_at değerlerini kullanarak yeni bir nesne oluşturulur değerleri updated_at created_at için yanlış zaman diliminde, nesneleri oluşturma gibi görünüyor ~ 7 saat ileri nerede olduğunu BununlaRaylar

created_at: "2013-04-25 03:22:19", updated_at: "2013-04-25 03:22:19", 

vardır Ben (PST).

Time.now.to_s 
=> "2013-04-24 20:23:12 -0700" 
Ben saat dilimi yerde bir kullanıcı onu yaratıyor ile tutarlı olduğundan emin olmak nasıl

?

+0

'config.time_zone' ayarını yaptınız mı? – lulalala

+0

'use_zone' [docs] 'ı gözden geçirin (http://api.rubyonrails.org/classes/Time.html#method-c-use_zone) --- Eğer zaman dilimini config/application.rb ayarına getirmediyseniz dosya, 'rake time: zones: all' işlevini çalıştırabileceğiniz geçerli saat dilimlerinin listesi için çalıştırın. – Tomanow

+0

İpucu: config/application.rb dosyasında config.time_zone değerini kontrol edin –

cevap

12

created_at ve updated_at değerleriniz sunucunuzdan veritabanına yazılır, böylece her zaman sunucunuzun veya uygulamanızın saat diliminde olurlar. Sunucu form verilerini işlediğinde ve veritabanınıza kaydettiğinde, tarayıcının saat dilimini bilmez.

@Lalalala'nın önerildiği gibi config.time_zone kullanarak bir Rails saat dilimi ayarlayabilirsiniz.

Yerel saat diliminde kullanıcılarınızın zamanlarını görüntülemek ilginizi çekiyor.

, bu gibi kullanıcılara kez görüntüleyebilir doğru olduğu garanti edilmez:

Model.created_at.in_time_zone(@current_user.time_zone) 
2

Ben komutuyla > Time.now.to_s ile irb dilimini kontrol ve saatin doğru, ama uygulama 3 saat yanlış kaydedin. Bu nedenle, benim için çözüm config/environments/development.rb dosyasına config.time_zone = "Santiago" dosyasını ekledi. Saat dilimi listesi here ve benim girişim