описание :
Мне нужно получить дату от текущей даты до следующих 5 дней.И нужно настроить текущее время, и сделать некоторые ограничения
дата начала:
2019-06-01
дата окончания:
2019-06-05
Дневной период времени:
08 ~ 10 10 ~ 12 12 ~ 14 14 ~ 16 16 ~18 18 ~ 20
Пример 1:
Если текущее время находится в диапазоне 2019-06-01 00:00 - 10: 00
результат :
array:2 [▼
0 => [
'date' => '2019-06-01',
"weekstr":"Saturday",
"subdate":"06-01"
'timelist' => [
[
'period' => '08 ~ 10',
'starthour' => '08',
'endhour' => '10',
'expired' => false
]
[
'period' => '10 ~ 12',
'starthour' => '10',
'endhour' => '12',
'expired' => false
]
]
]
1 => [
'date' => '2019-06-02',
"weekstr":"Saturday",
"subdate":"06-01"
'timelist' => [
[
'period' => '08 ~ 10',
'starthour' => '08',
'endhour' => '10',
'expire' => false
]
[
'period' => '10 ~ 12',
'starthour' => '10',
'endhour' => '12',
'expire' => false
]
]
]
]
Пример 2:
Если текущее время находится в диапазоне 2019-06-01 с 10:00 до 11:00
результат:
array:2 [▼
0 => [
'date' => '2019-06-01',
"weekstr":"Saturday",
"subdate":"06-01"
'timelist' => [
[
'period' => '08 ~ 10',
'starthour' => '08',
'endhour' => '10',
'expire' => true //Has passed 08:00 - 10:00 has expired, displayed as true
]
[
'period' => '10 ~ 12',
'starthour' => '10',
'endhour' => '12',
'expire' => false
]
]
]
1 => [
'date' => '2019-06-02',
"weekstr":"Saturday",
"subdate":"06-01"
'timelist' => [
[
'period' => '08 ~ 10',
'starthour' => '08',
'endhour' => '10',
'expired' => false
]
[
'period' => '10 ~ 12',
'starthour' => '10',
'endhour' => '12',
'expired' => false
]
]
]
]
Резюме: Для достижения этой функции у меня нет хорошей идеи в настоящее время.Я хочу попросить о помощи и дать мне некоторые идеи и методы, или я могу дать пример кода для моей справки.Спасибо.
Последняя ситуация
- В соответствии с запросом, данным Фабианом Монтеро Родригесом, я реализовал обработку даты, но нет никакой хорошей идеи иметь дело спериод времени.
код:
$start_date = Carbon::now();
$end_date = Carbon::now()->addDays(2);
$date_periods = CarbonPeriod::create($start_date, $end_date);
$dates = [];
foreach ($date_periods as $key => $date){
$dates[$key]['date'] = $date->format('Y-m-d');
$dates[$key]['week'] = $date->localeDayOfWeek;
$dates[$key]['subdate'] = $date->format('m-d');
}
dd($dates);
результат:
array:3 [▼
0 => array:3 [▼
"date" => "2019-05-31"
"week" => "Friday"
"subdate" => "05-31"
]
1 => array:3 [▼
"date" => "2019-06-01"
"week" => "Saturday"
"subdate" => "06-01"
]
2 => array:3 [▼
"date" => "2019-06-02"
"week" => "Sunday"
"subdate" => "06-02"
]
]
Текущая проблема
Диапазон дат былПодумайте о помощи, но просьба помочь мне