【发布时间】:2017-07-14 07:41:32
【问题描述】:
我正在创建一个在线预订系统。当用户单击日历中的日期时,它会返回该日期的两个日期时间(开始和结束)。我正在尝试计算我能够做到的从开始到结束的所有小时数,但我需要以间隔显示小时数。
假设用户添加了明天 10.00-14.00 的可用时间,那么我需要像这样显示时间:
10.00-11.00
11.00-12.00
12.00-13.00
13.00-14.00
特定日期。
到目前为止我所拥有的。
public function getTimes()
{
$user_id = Input::get("id"); //get the user id
$selectedDay = Input::get('selectedDay'); // We get the data from AJAX for the day selected, then we get all available times for that day
$availableTimes = Nanny_availability::where('user_id', $user_id)->get();
// We will now create an array of all booking datetimes that belong to the selected day
// WE WILL NOT filter this in the query because we want to maintain compatibility with every database (ideally)
// For each available time...
foreach($availableTimes as $t => $value) {
$startTime = new DateTime($value->booking_datetime);
if ($startTime->format("Y-m-d") == $selectedDay) {
$endTime = new DateTime($value->booking_datetime);
date_add($endTime, DateInterval::createFromDateString('3600 seconds'));
// Try to grab any appointments between the start time and end time
$result = Nanny_bookings::timeBetween($startTime->format("Y-m-d H:i"), $endTime->format("Y-m-d H:i"));
// If no records are returned, the time is okay, if not, we must remove it from the array
if($result->first()) {
unset($availableTimes[$t]);
}
} else {
unset($availableTimes[$t]);
}
}
return response()->json($availableTimes);
}
我怎样才能得到间隔?
【问题讨论】: