2011-09-23 5 views
0

J'ai déployé une application Rails, mais les heures sont incorrectes sur les colonnes created_at. Je vais à la production de console de rails et a couru Time.now et j'obtiens l'heure correcte.Conflit de fuseau horaire ou de fuseau horaire

Je me suis connecté à MySQL et j'ai exécuté SELECT NOW(); et je reçois le bon moment.

Mais quand un nouvel enregistrement est créé dans la base de données, je comprends qu'il est environ 5 heures du matin quand il est vraiment environ 1 heure du matin.

Quelqu'un at-il vécu quelque chose de similaire? Comment l'avez-vous réparé?

+0

Est-ce vous ajoutez un fuseau horaire à votre application.rb? – emrahbasman

+1

Peut-être que cela aide: [Ruby on Rails: Pourquoi est-ce que je reçois des fuseaux horaires quand j'écris un temps à la base de données, puis le relire?] (Http://stackoverflow.com/questions/319527/ruby-on-rails- pourquoi-do-i-get-timezones-munged-when-i-write-a-time-to-the-db-alors) – rdvdijk

Répondre

1

Le problème est que vous n'avez pas configuré le fuseau horaire par défaut dans votre application.

vous pouvez le faire dans votre environment.rb (Rails 2) ou application.rb (Rails 3) fichier, vous pouvez définir le fuseau horaire par défaut de cette façon:

config.time_zone = 'Central Time (US & Canada)' 

Référence: http://databasically.com/2010/10/22/what-time-is-it-or-handling-timezones-in-rails/

+0

et utilisez Time.zone.now pas Time.now ... – emrahbasman