2016-07-21 21 views
0

私のアプリはbootstrap3-datetimepickerを使用して時刻(時と分)を表示します。Rails:bootstrap3-datetimepickerを使用して間違った時刻が表示されます

時刻はテーブルに正しく保存でき、showビューで表示することができます。

編集しようとすると間違った時間が表示されます。 ミニですが、時は間違っています(常に午後8時)。例えば

DB:04:01:00

ビュー:8:01 PM(フォーマットLTある)

Iは4:01 AMことを期待。

edit.html.erb

<%= render 'event_form'%> 

_event_form.html.erb

これは:start_at:end_atの両方が起こります。

<%= form_for([@room, @event]) do |f| %> 

    ... 

    <div class="container"> 
    <div class="row"> 
     <div class='col-sm-6'> 
     <div class="form-group"> 
      <div class='input-group date' id='datetimepicker1'> 
      <%= f.text_field :start_at, :class => 'form-control'%> #this line 
      <span class="input-group-addon"> 
       <span class="glyphicon glyphicon-time"></span> 
      </span> 
      </div> 
     </div> 
     </div> 
     <script type="text/javascript"> 
     $(function() { 
      $('#datetimepicker1').datetimepicker({ 
      format: 'LT' 
      }); 
     }); 
     </script> 
    </div> 
    </div> 

<div class="container"> 
    <div class="row"> 
     <div class='col-sm-6'> 
      <div class="form-group"> 
       <div class='input-group date' id='datetimepicker2'> 
        <%= f.text_field :end_at, :class => 'form-control'%> #this line 
        <span class="input-group-addon"> 
         <span class="glyphicon glyphicon-time"></span> 
        </span> 
       </div> 
      </div> 
     </div> 
     <script type="text/javascript"> 
      $(function() { 
       $('#datetimepicker2').datetimepicker({ 
        format: 'LT' 
       }); 
      }); 
     </script> 
    </div> 
</div> 

    ... 

私はあなたが私に与えることができればそれは理解されるだろうhttps://eonasdan.github.io/bootstrap-datetimepicker/#custom-formats

スキーマ

create_table "events", force: :cascade do |t| 
    t.time  "start_at" 
    t.time  "end_at" 
    t.string "title" 
    t.string "detail" 
    t.integer "room_id" 
    t.datetime "created_at",  null: false 
    t.datetime "updated_at",  null: false 
    t.string "category" 
    t.integer "ccy" 
    t.decimal "amount" 
    end 

events_controller.rb

... 
    def edit 
    @room = Room.find(params[:room_id]) 
    @event = @room.events.find(params[:id]) 
    end 
... 

に従ってくださいnyのアドバイス。

+0

私は、datetime pickerが値を同じフォーマットで設定することを期待していると考えています。つまり、ピッカーに渡す値は「04:01:00」ではなく「4:01 AM」でなければなりません。 – MrWillihog

+0

素早い対応をいただき、ありがとうございます、@MrWillihog。 ymlファイルのフォーマット設定を反映するために 'l(:start_at)'を使ってみましたが、以下のエラーが表示されます。 'I18n :: ArgumentError(オブジェクトはDate、DateTimeまたはTimeオブジェクトでなければなりません。:start_at given。):'。これは別の問題かもしれませんが、私に何かヒントを与えることができれば幸いです。 – SamuraiBlue

+0

私はこれが最善の方法であるわからないんだけど、私はJavaScriptでこのようなものがあります。。。 '$(「#ののDateTimePickerを」)のデータ(「のDateTimePicker」)日付(モーメント(MyDateに該当).utc()形式(DATE_FORMAT)); '。誰かがより良い答えを求めてくるのを待つ価値があるでしょう。 – MrWillihog

答えて

0

DBの日付がUTCであるように聞こえるが、日付ピッカーは、ローカルタイムゾーンで日付を表示しています。次のように、日付ピッカーのタイムゾーンを無効にすることができます

var options = {}; 
options['timeZone'] = ''; 
$('.datetimepicker').datetimepicker(options); 
関連する問題