配列内に格納されているcarbonオブジェクトの日付文字列の一部が同じ、要素を取得する方法はありますでしょうか?
該当のコードは以下になります。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Carbon\Carbon; use App\Reservation; class Reservecontroller extends Controller { // public function getCalendarDates($year, $month) { $date = Carbon::parse("$year-$month-1")->locale('ja_JP'); // dd($date); $last = $date->copy()->startOfWeek(); $count = $last->diffInDays($date->copy()->endOfMonth()->endOfWeek()) + 1; // dd($count,$date); for ($i = 0; $i < $count; $i++, $last->addDay()) { $dates[] = $last->copy(); } return $dates; } // public function reserve_date() { $current_date = new Carbon(); $current_year = $current_date->year; $current_month = $current_date->format('m'); $current_day = $current_date->format('d'); // dd($current_day); $dates = $this->getCalendarDates($current_year,$current_month); //予約された日付(全て) $reservations = Reservation::get(['reservation_date']); $reservations_array = $reservations->toArray(); // dd($reservations_array); foreach($reservations_array as $key=> $value ){ $reserved_date[] = Carbon::parse($value['reservation_date']); // dd($reserved_date); if($reserved_date[$key]->month == $current_month){ var_dump($reserved_date[$key]); //今月の予約された時間帯 $current_reserved_date[] = $reserved_date[$key]; } } dd(); dd($current_reserved_date); $time = Carbon::createFromTime(10); // dd($current_reserved_date); for($i =0; $i < 17; $i++){ // dd($time); // var_dump($time); if(!$time->between(Carbon::createFromTime(12,00,0),Carbon::createFromTime(13,30,0))){ // var_dump($time); $available_time_zone[] = $time->copy(); } $time = $time->addMinutes(30); } // dd($current_reserved_date[0]->format('H:i'),$available_time_zone[6]->format('H:i')); // if($available_time_zone[6]->format('H:i') == $current_reserved_date[0]->format('H:i')){ // echo __LINE__; // dd(); // }; $reserved_count = 0; // dd($available_time_zone); foreach($available_time_zone as $reserved_day){ foreach($current_reserved_date as $current_day){ if($reserved_day->format('Y:m:d H:i') == $current_day->format('Y:m:d H:i')){ // var_dump($reserved_day); $reserved_count+=1; } } } dd($reserved_count); // dd($available_time_zone); // $am_nine = Carbon::parse($current_year . $current_month . $current_day . $a ); // // $am_nine = Carbon::parse($current_year . $current_month . $current_day . '1030'); // dd($am_nine); return view('reserve.calendar',compact('dates','current_date','current_reserved_date','reserved_count')); } }
上記コードにおきまして、reserve_dateメソッド内の
foreach($reservations_array as $key=> $value ){
こちらのループの後の$current_reserved_dateの実行結果は以下の通りです。
こちらの$current_reserved_dateメソッド内の日付部分「2019-6-24」が一致する要素を取得し、一致した要素を日付(「2019-6-24」)をキー名として、まとめる配列を作成したと考えています。
どなたかご助言頂ける方いらっしゃいましたらよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー