Question

J'ai vérifié mon environnement.rb

config.time_zone = 'Prague'

Rien dans development.rb en ce qui concerne le temps

Cela semble fonctionner, en théorie ...

Time.zone.now # Thu, 10 Sep 2009 17:51:35 CEST +02:00

corrigez également ...

Time.now # Thu Sep 10 17:52:10 +0200 2009

mysql... SELECT NOW() # 2009-09-10 17:53:48  

correct!

mais lorsque je crée un nouvel enregistrement dans des rails ou que je mets à jour un ancien

Item.create(:price => price, :spots => beds) # 2009-09-10 15:55:28

et avez redémarré les rails plusieurs fois!

Était-ce utile?

La solution

On dirait qu'il est en train de l'enregistrer au format UTC (heure GMT), ce qui est deux heures plus tôt que votre heure locale. Dans une large mesure, les temps de création sont mieux stockés en UTC - > vous les traduisez ensuite lors de la visualisation.

EDIT: La La classe d'horodatage semble indiquer que l'horodatage local est censé être utilisé. Vous pouvez vérifier le paramétrage indiqué par la documentation.

Autres conseils

Quelle heure est-il si vous sélectionnez cet enregistrement via la console? 15h55 ou 17h55?

Si vous sélectionnez via la console, il utilise le fuseau horaire défini. Il sera donc naturellement différent du " real " horodatage dans la base de données mysql.

Jetez un coup d’œil à Incohérences temporelles étranges entre la production et le développement aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top