У меня проблемы с пониманием формата даты и времени в рельсах. Я сохранил дату, которая называется 'sets_at', а тип - datetime с использованием почтальона.
{
"reservation": {
"starts_at": "2020-1-7 7:00 pm",
"expires_at": "2020-1-7 9:00 pm"
}
}
Я хочу ввести другую дату и хочу, чтобы дата, которую я вводил каждый раз, находилась с интервалом в 120 минут после. Поэтому я попытался вытащить «sets_at» из моей модели «оговорки» и попытался провести l oop через каждую дату «start_at» и сравнить их разницу с моими новыми введенными датами «Start_at».
# I have defined scope to pluck the 'starts_at' in reservation.rb
# scope :starts_at, -> { pluck(:starts_at) }
def create
Reservation.starts_at.each do |starts_at|
time_diffs = time_diff_in_minutes(date_time_conversion(starts_at) - params[:starts_at].to_datetime)
if time_diffs < 120
return
end
@reservation = Reservation.new(processed_params)
reservation.save
end
end
private
def date_time_conversion(starts_at)
starts_at.to_datetime
end
def time_diff_in_minutes(time_calc)
(time_calc * 24 * 60).to_s.to_i.abs
end
У меня есть одно значение в базе данных, у которого start_at datetime = "2020-1-7 7:00 pm". Когда я запускаю отладчик и проверяю набранное значение, оно имеет формат примерно такой:
Tue, 07 Jan 2020 18:00:00 +06 +06:00
И формат введенной даты был примерно таким:
Tue, 07 Jan 2020 19:00:00 +0000
Я хочу понять, что делает +06 +6: 00 означает и как postgresql база данных хранит объект даты и времени и формат возврата. Ваша помощь будет высоко оценена. Спасибо!