如何获取给定日期前后 7 天的日期范围并在选择中填充 - Laravel

我试图在 laravel 的选择字段中获取特定日期前后 7 个日期的日期列表。例如,如果特定日期是“2019-07-18”,我想在选择字段中填充从“2019-07-11”到“2019-07-25”的日期列表。任何人都可以帮助我使用控制器的代码片段来实现这一点。


慕盖茨4494581
浏览 191回答 2
2回答

慕少森

function getAgoDays($specDay, $days, $format = 'Y-m-d') {&nbsp; &nbsp; $d = date('d', strtotime($specDay));&nbsp;&nbsp; &nbsp; $m = date('m', strtotime($specDay));&nbsp;&nbsp; &nbsp; $y = date('Y', strtotime($specDay));&nbsp; &nbsp; $dateArray = array();&nbsp; &nbsp; for($i=1; $i<=$days; $i++) {&nbsp; &nbsp; &nbsp; &nbsp; $dateArray[] = '"' . date($format, mktime(0,0,0,$m,($d-$i),$y)) . '"';&nbsp;&nbsp; &nbsp; }&nbsp; &nbsp; return array_reverse($dateArray);}function getBeforeDays($specDay, $days, $format = 'Y-m-d') {&nbsp; &nbsp; $d = date('d', strtotime($specDay));&nbsp;&nbsp; &nbsp; $m = date('m', strtotime($specDay));&nbsp;&nbsp; &nbsp; $y = date('Y', strtotime($specDay));&nbsp; &nbsp; $dateArray = array();&nbsp; &nbsp; for($i=1; $i<=$days; $i++) {&nbsp; &nbsp; &nbsp; &nbsp; $dateArray[] = '"' . date($format, mktime(0,0,0,$m,($d+$i),$y)) . '"';&nbsp;&nbsp; &nbsp; }&nbsp; &nbsp; return $dateArray;}用$agoDays = getAgoDays('2019-07-18', 7, 'Y-m-d');echo '<pre>';print_r($agoDays);echo '</pre>';$agoDays = getBeforeDays('2019-07-18', 7, 'Y-m-d');echo '<pre>';print_r($agoDays);echo '</pre>';

胡子哥哥

您可以使用碳周期:$givenDate = "2019-07-18";$dateMinusOneWeek = Carbon::parse($givenDate)->subWeek()->format('Y-m-d');$datePlusOneWeek = Carbon::parse($givenDate)->addWeek()->format('Y-m-d');$period = CarbonPeriod::create(dateMinusOneWeek , datePlusOneWeek);//You can iterate over the periodforeach ($period as $date) {&nbsp; &nbsp; echo $date->format('Y-m-d');}//Or convert the period to an array of dates$dates = $period->toArray();希望能帮助到你。
打开App,查看更多内容
随时随地看视频慕课网APP