2016-06-22 5 views
4

Ich habe ein Modell mit einem Datetime-Feld und ist in UTC gespeichert, wie kann ich dieses Datum in einfacher Form in einer bestimmten Zeitzone anzeigen?Wie kann ich die Zeitzone in einem einfachen Datumsfeld einstellen?

Bereits mit der Option versuchen input_html: {value: @model.date.in_time_zone('Eastern Time (US & Canada)')}

Hinweis: Ich kann nicht die Zeitzone von Rails-Anwendung ändern kann

+0

Was ist das Ergebnis Ihres Tests? UTC noch? Was ist die Zeitzone für die Rails App? Was ist der Wert von '@ model.date' und' @ model.date.in_time_zone ('Eastern Time (USA & Kanada)') ' – Leito

+0

das Formular bleibt die ganze Zeit bei UTC, wenn ein Aufruf '@model.date.in_time_zone (Eastern Time (USA und Kanada)) 'z in der Konsole oder Anzeige in einer Ansicht, konvertiert es – letz

+0

Ich hatte die entgegengesetzte Anforderung in einem Projekt, UTC anzeigen und meine Lösung war, meine eigene 'UtcDateSelectInput' zu erstellen, das war für 'Formtastic', aber eine ähnliche/analoge Lösung sollte funktionieren mit simple_form. Der benutzerdefinierte Eingang erbt von DateSelectInput und überschreibt die Wertmethode wie folgt: 'super.utc if super.respond_to? : utc'. Ich hoffe das hilft. – Leito

Antwort

0

Es wird funktionieren, wenn Sie die Zeitzone in der Steuerung gesetzt:

Beispiel:

around_action :set_time_zone, if: :current_user 

private 

def set_time_zone(&block) 
    Time.use_zone(current_user.time_zone, &block) 
end