찾다

 >  Q&A  >  본문

Laravel 모델은 때때로 Carbon 객체를 변환하고 Carbon\Carbon 유형의 객체를 배열 오류로 사용할 수 없습니다.

<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>
P粉125450549P粉125450549485일 전535

모든 응답(1)나는 대답할 것이다

  • P粉011684326

    P粉0116843262023-08-31 09:37:41

    $model->checkin_date_time 不是 "2022-12-12 22:22:22" 它是一个 Carbon(DateTime 的子类)对象。当您尝试将其转换为字符串(使用 echo、任何类型的显示或将其注入另一个字符串中时,它会自动格式化为 Y-m-d h:i:s

    다른 형식으로 출력하려면 ->format() 방법을 사용하세요:

    으아악

    어쨌든 오프셋($check_in[10] = 구문)을 사용하여 문자열의 문자를 수정하는 것은 정말 나쁜 생각이며 이러한 미세 최적화는 그만한 가치가 없습니다.

    회신하다
    0
  • 취소회신하다