【发布时间】:2021-07-17 10:15:42
【问题描述】:
我有一个表 OperatingHours,其中记录了一周中某天(周一、周二、周三到周日)的 7 行数据。并且有一个数据列,用户可以在其中设置诊所是否开放一周。
我想生成从当前日期到年底的日期列表,按诊所营业的星期几。目前以下是我的方法的控制器代码,我收到以下错误:
DateTime::modify(): 解析时间字符串失败(这个 [{"day":"Monday"},{"day":"Tuesday"},{"day":"Wednesday"},{"day":"Thursday"},{"day":"Friday"} ]) 在位置 0 (t):在数据库中找不到时区
public function index(){
$operatingDays = OperatingHour::where('clinic_open', true)->get('day');
$currentDate = Carbon::now()->toDateTimeString();
$endOfYear - Carbon::now()->endOfYear()->toDateTimeString();
$dt = $this->getWorkDayInRange($operatingDays, $currentDate, $endOfYear);
$data = [
'dt' = $dt,
];
return view('appointment', $data);
}
public function getWorkDayInRange($workday, $fromDate, $toDate){
$dates = [];
$startDate = Carbon::parse($fromDate)->modify("this $workday");
$endDate = Carbon::parse($toDate);
//lte = less than or equal
for ($date = $startDate; $date->lte($endDate); $date->addWeek()) {
$dates[] = $date->toDateString();
}
return $dates;
}
【问题讨论】:
-
您还想查看日期名称吗?
-
@YasinPatel yap 检查日期名称,并填写日期
-
getWorkDayInRange($operatingDays,...传递数组getWorkDayInRange($workday期望工作日字符串Failed to parse time string错误消息会显示您传递的内容,因此很明显现在可以从数组 JSON 中获取任何正确的日期。跨度>
标签: php laravel php-carbon