Я пытаюсь сохранить дату в базе данных, но я не могу понять это правильно. Дата постоянно 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 как в этой теме Different date saved to database - wrong time zone, но это все та же:
config.time_zone = 'Central Time (US & Canada)'
config.active_record.default_timezone = :local
config.active_record.time_zone_aware_attributes = false
Дата в базе данных всегда 4 часа вперед, и когда я возвращаю даты с базы данных, они отображаются неправильно на FullCalendar.
Звучит как проблема с часовым поясом. В какой временной зоне ваша база данных так думает? Что думает ваш код? –
Моя база данных сохраняет все в часовой пояс UTC. Я в настоящее время в Нью-Йорке, и если я создам событие в 10 утра, он будет сохранен в базе данных, например, в 2 часа дня. Итак, разница в 4 часа. – Cristiano
Думаю, я нашел решение. Кажется, он не хочет автоматически конвертироваться, поэтому после даты, когда мне нужно поставить «in_time_zone», а затем она будет конвертировать ее в обычную для назначенного часового пояса. – Cristiano