0

日付をデータベースに保存しようとしていますが、正しく取得できません。日付は常に実際の日付から 4 時間後です。イベントを表示するために FullCalendar を使用しています。

私はこのように日付を保存します:

var dateEnd = new Date();
            dateEnd.setDate(day);
            dateEnd.setMonth(month);
            dateEnd.setFullYear(year);
            dateEnd.setHours(hour);
            dateEnd.setMinutes(minutes);

            alert('Next slot: ' + dateEnd);


            $('#calendar').fullCalendar('renderEvent', { title: 'YOUR TITLE', start: date, end: dateEnd,allDay: false, backgroundColor: '#378006' }, true );

            $.ajax({
              type: "POST",
              url: "/create",
              data: {
                start_date: date,
                end_date: dateEnd,
                doctor_id: '1',
                user_id: '1'
              }
            });

次のようなイベントを表示します。

events: 
        [
        <% @appointments.each do |appointment| %>
        {
          //alert(<%= appointment.start_date %>);
          title  : "Reserved",
          start  : "<%= appointment.start_date.strftime '%Y-%m-%dT%H:%M:%S' %>",
          end    : "<%= appointment.end_date.strftime '%Y-%m-%dT%H:%M:%S' %>",
          allDay : false
        },
        <% end %>
        ],

私はこれをこのスレッドのように application.rb の中に入れました データベースに保存された別の日付 - 間違ったタイムゾーンですが、それでも同じです:

config.time_zone = 'Central Time (US & Canada)'
    config.active_record.default_timezone = :local
    config.active_record.time_zone_aware_attributes = false

データベースの日付は常に 4 時間先であり、データベースから日付を取得すると、FullCalendar で正しく表示されません。

4

3 に答える 3

0

私はあなたが本当にしたいとは思わないconfig.active_record.time_zone_aware_attributes = false'Central Time (US & Canada)'これは、時刻を で表すのではなく、UTC で表すことを Rails に伝えています。

于 2013-10-08T23:11:27.237 に答える