Laravel 모델은 때때로 Carbon 객체를 변환하고 Carbon\Carbon 유형의 객체를 배열 오류로 사용할 수 없습니다.
P粉125450549
2023-08-30 13:56:16
<p>이전 코드베이스에서 시간대 변환을 수행하기 위해 문자열 조작을 수행하고 있습니다. </p>
<p>날짜와 시간 사이에 <code>T</code>를 넣어야 합니다. 이를 위해 다음 논리를 사용하고 있습니다. </p>
<pre class="brush:php;toolbar:false;">$check_in= $model->checkin_date_time; // 2022-12-12 22:22:22
$check_in[10] = 'T'; // 2022-12-12T22:22:22</pre>
<p>뭔가 이상한 이유로 이 오류가 발생합니다. </p>
<pre class="brush:php;toolbar:false;">CarbonCarbon 유형의 객체를 배열로 사용할 수 없습니다</pre>
<p>그러나 항상 그런 것은 아닙니다. 2000~3000개의 요청당 오류가 1~2개만 발생합니다. </p>
<p>저는 다른 곳에서(동일한 함수의 다른 부분에서도) Carbon을 사용하고 있지만 <code>checkin_date_time</code> </p>
<p><code>$model->checkin_date_time</code>이 Carbon 객체로 변환되는 이유를 잘 모르겠습니다. </p>
$model->checkin_date_time
不是"2022-12-12 22:22:22"
它是一个 Carbon(DateTime 的子类)对象。当您尝试将其转换为字符串(使用echo
、任何类型的显示或将其注入另一个字符串中时,它会自动格式化为Y-m-d h:i:s
다른 형식으로 출력하려면
으아악->format()
방법을 사용하세요:어쨌든 오프셋(
$check_in[10] =
구문)을 사용하여 문자열의 문자를 수정하는 것은 정말 나쁜 생각이며 이러한 미세 최적화는 그만한 가치가 없습니다.